diff options
Diffstat (limited to 'cpp06/ex02')
| -rw-r--r-- | cpp06/ex02/A.hpp | 22 | ||||
| -rw-r--r-- | cpp06/ex02/B.hpp | 22 | ||||
| -rw-r--r-- | cpp06/ex02/Base.hpp | 22 | ||||
| -rw-r--r-- | cpp06/ex02/C.hpp | 22 | ||||
| -rw-r--r-- | cpp06/ex02/Makefile | 35 | ||||
| -rw-r--r-- | cpp06/ex02/main.cpp | 36 |
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; +} |
