summaryrefslogtreecommitdiff
path: root/ex05
diff options
context:
space:
mode:
authorDominik Kaiser2025-02-12 11:36:46 +0100
committerDominik Kaiser2025-02-12 11:36:46 +0100
commit368088666e4de671a3309a49cdd0dc6b2f30c003 (patch)
treec17f77641dae37d97d60aec3d1267b99fc765467 /ex05
parent3f86c0bd10d1bb49a828067faf5f5169c79975e5 (diff)
downloadcpp01-368088666e4de671a3309a49cdd0dc6b2f30c003.tar.gz
cpp01-368088666e4de671a3309a49cdd0dc6b2f30c003.zip
Implement Harl
Diffstat (limited to 'ex05')
-rw-r--r--ex05/Harl.cpp44
-rw-r--r--ex05/Harl.hpp14
-rw-r--r--ex05/main.cpp14
3 files changed, 68 insertions, 4 deletions
diff --git a/ex05/Harl.cpp b/ex05/Harl.cpp
index 91430f7..fcad030 100644
--- a/ex05/Harl.cpp
+++ b/ex05/Harl.cpp
@@ -6,8 +6,50 @@
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2025/02/12 10:37:12 by dkaiser #+# #+# */
-/* Updated: 2025/02/12 10:37:22 by dkaiser ### ########.fr */
+/* Updated: 2025/02/12 11:29:15 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
#include "Harl.hpp"
+#include <iostream>
+
+void Harl::complain(std::string level)
+{
+ std::string levels[4] = {"DEBUG", "INFO", "WARNING", "ERROR"};
+ void (Harl::*funcs[4])() = {&Harl::debug,
+ &Harl::info,
+ &Harl::warning,
+ &Harl::error};
+ for (int i = 0; i < 4; i++)
+ {
+ if (level == levels[i])
+ (this->*funcs[i])();
+ }
+}
+
+void Harl::debug(void)
+{
+ std::cout << "I love having extra bacon for my ";
+ std::cout << "7XL-double-cheese-triple-pickle-special-ketchup burger. ";
+ std::cout << "I really do!" << std::endl;
+}
+
+void Harl::info(void)
+{
+ std::cout << "I cannot believe adding extra bacon costs more money. ";
+ std::cout << "You didn’t put enough bacon in my burger! ";
+ std::cout << "If you did, I wouldn’t be asking for more!" << std::endl;
+}
+
+void Harl::warning(void)
+{
+ std::cout << "I think I deserve to have some extra bacon for free. ";
+ std::cout << "I’ve been coming for years whereas you ";
+ std::cout << "started working here since last month." << std::endl;
+}
+
+void Harl::error(void)
+{
+ std::cout << "This is unacceptable! I want to speak to the manager now.";
+ std::cout << std::endl;
+}
diff --git a/ex05/Harl.hpp b/ex05/Harl.hpp
index a0b1f30..ade7f98 100644
--- a/ex05/Harl.hpp
+++ b/ex05/Harl.hpp
@@ -6,11 +6,23 @@
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2025/02/12 10:36:43 by dkaiser #+# #+# */
-/* Updated: 2025/02/12 10:37:00 by dkaiser ### ########.fr */
+/* Updated: 2025/02/12 11:36:33 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
#ifndef HARL_H_
#define HARL_H_
+#include <string>
+class Harl
+{
+ public:
+ void complain(std::string level);
+ private:
+ void debug(void);
+ void info(void);
+ void warning(void);
+ void error(void);
+};
+
#endif
diff --git a/ex05/main.cpp b/ex05/main.cpp
index 72a3752..1180187 100644
--- a/ex05/main.cpp
+++ b/ex05/main.cpp
@@ -6,9 +6,19 @@
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2025/02/12 10:35:53 by dkaiser #+# #+# */
-/* Updated: 2025/02/12 10:36:35 by dkaiser ### ########.fr */
+/* Updated: 2025/02/12 11:35:27 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
+#include "Harl.hpp"
+
int main(void)
-{}
+{
+ Harl harl = Harl();
+
+ harl.complain("DEBUG");
+ harl.complain("INFO");
+ harl.complain("WARNING");
+ harl.complain("ERROR");
+ harl.complain("Invalid Input");
+}