aboutsummaryrefslogtreecommitdiff
path: root/cpp06/ex02
diff options
context:
space:
mode:
Diffstat (limited to 'cpp06/ex02')
-rw-r--r--cpp06/ex02/A.hpp22
-rw-r--r--cpp06/ex02/B.hpp22
-rw-r--r--cpp06/ex02/Base.hpp22
-rw-r--r--cpp06/ex02/C.hpp22
-rw-r--r--cpp06/ex02/Makefile35
-rw-r--r--cpp06/ex02/main.cpp36
6 files changed, 159 insertions, 0 deletions
diff --git a/cpp06/ex02/A.hpp b/cpp06/ex02/A.hpp
new file mode 100644
index 0000000..30c68d5
--- /dev/null
+++ b/cpp06/ex02/A.hpp
@@ -0,0 +1,22 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* A.hpp :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2020/04/15 09:56:52 by charles #+# #+# */
+/* Updated: 2020/04/15 10:03:37 by charles ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#ifndef A_HPP
+# define A_HPP
+
+# include "Base.hpp"
+
+class A : public Base
+{
+};
+
+#endif
diff --git a/cpp06/ex02/B.hpp b/cpp06/ex02/B.hpp
new file mode 100644
index 0000000..aeac82e
--- /dev/null
+++ b/cpp06/ex02/B.hpp
@@ -0,0 +1,22 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* B.hpp :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2020/04/15 09:57:12 by charles #+# #+# */
+/* Updated: 2020/04/15 10:07:52 by charles ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#ifndef B_HPP
+# define B_HPP
+
+# include "Base.hpp"
+
+class B : public Base
+{
+};
+
+#endif
diff --git a/cpp06/ex02/Base.hpp b/cpp06/ex02/Base.hpp
new file mode 100644
index 0000000..c70706a
--- /dev/null
+++ b/cpp06/ex02/Base.hpp
@@ -0,0 +1,22 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* Base.hpp :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2020/04/15 09:56:24 by charles #+# #+# */
+/* Updated: 2020/04/15 09:56:41 by charles ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#ifndef BASE_HPP
+# define BASE_HPP
+
+class Base
+{
+public:
+ virtual ~Base();
+};
+
+#endif
diff --git a/cpp06/ex02/C.hpp b/cpp06/ex02/C.hpp
new file mode 100644
index 0000000..537c0c5
--- /dev/null
+++ b/cpp06/ex02/C.hpp
@@ -0,0 +1,22 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* C.hpp :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2020/04/15 09:57:24 by charles #+# #+# */
+/* Updated: 2020/04/15 10:03:30 by charles ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#ifndef C_HPP
+# define C_HPP
+
+# include "Base.hpp"
+
+class C : public Base
+{
+};
+
+#endif
diff --git a/cpp06/ex02/Makefile b/cpp06/ex02/Makefile
new file mode 100644
index 0000000..b68a586
--- /dev/null
+++ b/cpp06/ex02/Makefile
@@ -0,0 +1,35 @@
+# **************************************************************************** #
+# #
+# ::: :::::::: #
+# Makefile :+: :+: :+: #
+# +:+ +:+ +:+ #
+# By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ #
+# +#+#+#+#+#+ +#+ #
+# Created: 2020/04/15 09:59:30 by charles #+# #+# #
+# Updated: 2020/04/15 10:00:05 by charles ### ########.fr #
+# #
+# **************************************************************************** #
+
+NAME = identify_real_type
+
+CXX = clang++
+CXXFLAGS = -std=c++98 -Wall -Wextra -Werror
+
+SRC = main.cpp
+OBJ = $(SRC:.cpp=.o)
+
+all: $(NAME)
+
+$(NAME): $(OBJ)
+ $(CXX) -o $@ $<
+
+%.o: %.cpp
+ $(CXX) $(CXXFLAGS) -c -o $@ $^
+
+clean:
+ rm -rf $(OBJ)
+
+fclean: clean
+ rm -rf $(NAME)
+
+re: fclean all
diff --git a/cpp06/ex02/main.cpp b/cpp06/ex02/main.cpp
new file mode 100644
index 0000000..17c0c3d
--- /dev/null
+++ b/cpp06/ex02/main.cpp
@@ -0,0 +1,36 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* main.cpp :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2020/04/15 10:00:18 by charles #+# #+# */
+/* Updated: 2020/04/15 10:05:23 by charles ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include <iostream>
+#include <cstdlib>
+#include "Base.hpp"
+#include "A.hpp"
+#include "B.hpp"
+#include "C.hpp"
+
+Base* generate(void)
+{
+ switch (rand() % 3)
+ {
+ case 0: return new A();
+ case 1: return new B();
+ case 2: return new C();
+ }
+ return NULL;
+}
+
+int main()
+{
+ srand(time(NULL));
+
+ return 0;
+}