From f7bd1abc3cc422b9bc728ed5879ea4fc270dacbb Mon Sep 17 00:00:00 2001 From: Raphael Date: Thu, 6 Feb 2025 23:29:03 +0100 Subject: [PATCH] adding the start of ex01 with the patched for cpp98 --- cpp04/ex01/Animal.cpp | 17 ++++++++--------- cpp04/ex01/Animal.hpp | 8 ++++---- cpp04/ex01/Brain.cpp | 7 +++++-- cpp04/ex01/Cat.cpp | 10 +++++----- cpp04/ex01/Cat.hpp | 3 ++- cpp04/ex01/Dog.cpp | 10 +++++----- cpp04/ex01/Dog.hpp | 4 ++-- cpp04/ex01/Makefile | 11 +++++++++-- cpp04/ex01/WrongAnimal.cpp | 31 +++++++++++++++++++++++++++++++ cpp04/ex01/WrongAnimal.hpp | 30 ++++++++++++++++++++++++++++++ cpp04/ex01/WrongCat.cpp | 26 ++++++++++++++++++++++++++ cpp04/ex01/WrongCat.hpp | 30 ++++++++++++++++++++++++++++++ cpp04/ex01/a.out | Bin 18720 -> 0 bytes cpp04/ex01/main.cpp | 33 ++++++++++++++++++++++++++++----- cpp04/ex01/polyformism | Bin 0 -> 65096 bytes 15 files changed, 185 insertions(+), 35 deletions(-) create mode 100644 cpp04/ex01/WrongAnimal.cpp create mode 100644 cpp04/ex01/WrongAnimal.hpp create mode 100644 cpp04/ex01/WrongCat.cpp create mode 100644 cpp04/ex01/WrongCat.hpp delete mode 100755 cpp04/ex01/a.out create mode 100755 cpp04/ex01/polyformism diff --git a/cpp04/ex01/Animal.cpp b/cpp04/ex01/Animal.cpp index 410e2e7..b80a082 100644 --- a/cpp04/ex01/Animal.cpp +++ b/cpp04/ex01/Animal.cpp @@ -6,7 +6,7 @@ /* By: rparodi +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/01/30 13:21:01 by rparodi #+# #+# */ -/* Updated: 2025/01/30 13:37:51 by rparodi ### ########.fr */ +/* Updated: 2025/01/31 19:53:47 by rparodi ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,19 +14,18 @@ #include Animal::Animal() { - std::cout << "[Animal] Creating the class" << std::endl; + std::cout << "[Animal]\tCreating the class" << std::endl; type = ""; } Animal::~Animal() { - std::cout << "[Animal] Deleting the class" << std::endl; + std::cout << "[Animal]\tDeleting the class" << std::endl; } -void Animal::makeSound() { - if (type.compare("Cat")) - std::cout << "🐱 | Meow Meow" << std::endl; - else if (type.compare("Dog")) - std::cout << "🐶 | Wouf Wouf" << std::endl; - else +std::string Animal::getType() const { + return (type); +} + +void Animal::makeSound() const { std::cout << "🤔 | thinking how to make a sound" << std::endl; } diff --git a/cpp04/ex01/Animal.hpp b/cpp04/ex01/Animal.hpp index bcd273a..bfb8474 100644 --- a/cpp04/ex01/Animal.hpp +++ b/cpp04/ex01/Animal.hpp @@ -6,7 +6,7 @@ /* By: rparodi +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/01/28 17:44:54 by rparodi #+# #+# */ -/* Updated: 2025/01/30 13:42:23 by rparodi ### ########.fr */ +/* Updated: 2025/01/31 19:23:05 by rparodi ### ########.fr */ /* */ /* ************************************************************************** */ @@ -19,9 +19,9 @@ class Animal { public: Animal(); - ~Animal(); - void makeSound(); - std::string getType(); + virtual ~Animal(); + virtual void makeSound() const; + std::string getType() const; protected: std::string type; private: diff --git a/cpp04/ex01/Brain.cpp b/cpp04/ex01/Brain.cpp index 2c6db6f..dd24df0 100644 --- a/cpp04/ex01/Brain.cpp +++ b/cpp04/ex01/Brain.cpp @@ -6,16 +6,19 @@ /* By: rparodi +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/02/06 15:17:41 by rparodi #+# #+# */ -/* Updated: 2025/02/06 17:56:18 by rparodi ### ########.fr */ +/* Updated: 2025/02/06 23:28:28 by rparodi ### ########.fr */ /* */ /* ************************************************************************** */ #include "Brain.hpp" +#include #include Brain::Brain() { for (int i = 0; i < 100; i++) { - idea[i] = "I'm thinking about the number " + std::to_string(i + 1); + std::ostringstream oss; + oss << "I'm thinking about the number " << (i + 1); + idea[i] = oss.str(); } } diff --git a/cpp04/ex01/Cat.cpp b/cpp04/ex01/Cat.cpp index 207c674..5e2ef4c 100644 --- a/cpp04/ex01/Cat.cpp +++ b/cpp04/ex01/Cat.cpp @@ -6,21 +6,21 @@ /* By: rparodi +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/01/30 13:32:43 by rparodi #+# #+# */ -/* Updated: 2025/01/30 13:38:46 by rparodi ### ########.fr */ +/* Updated: 2025/01/31 19:54:03 by rparodi ### ########.fr */ /* */ /* ************************************************************************** */ #include "Cat.hpp" Cat::Cat() { - std::cout << "[Cat] Creating the class" << std::endl; + std::cout << "[Cat]\t\tCreating the class" << std::endl; type = "Cat"; } Cat::~Cat() { - std::cout << "[Cat] Deleting the class" << std::endl; + std::cout << "[Cat]\t\tDeleting the class" << std::endl; } -std::string Cat::getType() { - return (type); +void Cat::makeSound() const { + std::cout << "🐱 | Meow Meow" << std::endl; } diff --git a/cpp04/ex01/Cat.hpp b/cpp04/ex01/Cat.hpp index 130e8ed..f770266 100644 --- a/cpp04/ex01/Cat.hpp +++ b/cpp04/ex01/Cat.hpp @@ -6,7 +6,7 @@ /* By: rparodi +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/01/28 17:44:48 by rparodi #+# #+# */ -/* Updated: 2025/01/30 13:41:27 by rparodi ### ########.fr */ +/* Updated: 2025/01/31 18:24:18 by rparodi ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,6 +20,7 @@ class Cat : public Animal { public: Cat(); ~Cat(); + virtual void makeSound() const; protected: private: diff --git a/cpp04/ex01/Dog.cpp b/cpp04/ex01/Dog.cpp index cf6a045..7b8c767 100644 --- a/cpp04/ex01/Dog.cpp +++ b/cpp04/ex01/Dog.cpp @@ -6,21 +6,21 @@ /* By: rparodi +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/01/30 13:40:30 by rparodi #+# #+# */ -/* Updated: 2025/01/30 13:40:51 by rparodi ### ########.fr */ +/* Updated: 2025/01/31 19:53:02 by rparodi ### ########.fr */ /* */ /* ************************************************************************** */ #include "Dog.hpp" Dog::Dog() { - std::cout << "[Dog] Creating the class" << std::endl; + std::cout << "[Dog]\t\tCreating the class" << std::endl; type = "Dog"; } Dog::~Dog() { - std::cout << "[Dog] Deleting the class" << std::endl; + std::cout << "[Dog]\t\tDeleting the class" << std::endl; } -std::string Dog::getType() { - return (type); +void Dog::makeSound() const { + std::cout << "🐶 | Wouf Wouf" << std::endl; } diff --git a/cpp04/ex01/Dog.hpp b/cpp04/ex01/Dog.hpp index 80c5361..9d67241 100644 --- a/cpp04/ex01/Dog.hpp +++ b/cpp04/ex01/Dog.hpp @@ -6,7 +6,7 @@ /* By: rparodi +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/01/28 17:44:51 by rparodi #+# #+# */ -/* Updated: 2025/01/30 13:32:28 by rparodi ### ########.fr */ +/* Updated: 2025/01/31 18:24:07 by rparodi ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,7 +20,7 @@ class Dog : public Animal { public: Dog(); ~Dog(); - std::string getType(); + virtual void makeSound() const; protected: private: diff --git a/cpp04/ex01/Makefile b/cpp04/ex01/Makefile index 8380d2b..12e6eaa 100644 --- a/cpp04/ex01/Makefile +++ b/cpp04/ex01/Makefile @@ -19,13 +19,20 @@ CXX = c++ RM = rm -rf # Flags -# Mandatory flags for 42 CXXFLAGS = -Werror -Wextra -Wall -std=c++98 -I./includes/ +# Mandatory flags for 42 +CXXFLAGS = -Werror -Wextra -Wall -std=c++98 -I./includes/ # Flags to debug and have the dependences (can be removed for correction) CXXFLAGS += -MMD -g3 # Flag to debug (TO REMOVE) # CXXFLAGS += -D DEBUG=1 # Sources -SRC = main.cpp +SRC = Animal.cpp \ + Brain.cpp \ + Cat.cpp \ + Dog.cpp \ + WrongAnimal.cpp \ + WrongCat.cpp \ + main.cpp \ # Objects OBJDIRNAME = ./build diff --git a/cpp04/ex01/WrongAnimal.cpp b/cpp04/ex01/WrongAnimal.cpp new file mode 100644 index 0000000..0afff32 --- /dev/null +++ b/cpp04/ex01/WrongAnimal.cpp @@ -0,0 +1,31 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* WrongAnimal.cpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: rparodi +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/01/30 13:21:01 by rparodi #+# #+# */ +/* Updated: 2025/01/31 19:54:23 by rparodi ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "WrongAnimal.hpp" +#include + +WrongAnimal::WrongAnimal() { + std::cout << "[WrongAnimal]\tCreating the class" << std::endl; + type = ""; +} + +WrongAnimal::~WrongAnimal() { + std::cout << "[WrongAnimal]\tDeleting the class" << std::endl; +} + +std::string WrongAnimal::getType() const { + return (type); +} + +void WrongAnimal::makeSound() const { + std::cout << "🦊 | What does the fox say ?" << std::endl; +} diff --git a/cpp04/ex01/WrongAnimal.hpp b/cpp04/ex01/WrongAnimal.hpp new file mode 100644 index 0000000..3e13252 --- /dev/null +++ b/cpp04/ex01/WrongAnimal.hpp @@ -0,0 +1,30 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* WrongAnimal.hpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: rparodi +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/01/28 17:44:54 by rparodi #+# #+# */ +/* Updated: 2025/01/31 19:34:06 by rparodi ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef WRONGANIMAL_HPP +#define WRONGANIMAL_HPP + +#include +#include + +class WrongAnimal { + public: + WrongAnimal(); + virtual ~WrongAnimal(); + virtual void makeSound() const; + std::string getType() const; + protected: + std::string type; + private: +}; + +#endif diff --git a/cpp04/ex01/WrongCat.cpp b/cpp04/ex01/WrongCat.cpp new file mode 100644 index 0000000..e7abd44 --- /dev/null +++ b/cpp04/ex01/WrongCat.cpp @@ -0,0 +1,26 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* WrongCat.cpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: rparodi +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/01/30 13:32:43 by rparodi #+# #+# */ +/* Updated: 2025/01/31 19:54:35 by rparodi ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "WrongCat.hpp" + +WrongCat::WrongCat() { + std::cout << "[WrongCat]\tCreating the class" << std::endl; + type = "WrongCat"; +} + +WrongCat::~WrongCat() { + std::cout << "[WrongCat]\tDeleting the class" << std::endl; +} + +void WrongCat::makeSound() const { + std::cout << "🙀 | Help me I transform my self in cat" << std::endl; +} diff --git a/cpp04/ex01/WrongCat.hpp b/cpp04/ex01/WrongCat.hpp new file mode 100644 index 0000000..d9e55b6 --- /dev/null +++ b/cpp04/ex01/WrongCat.hpp @@ -0,0 +1,30 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* WrongCat.hpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: rparodi +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/01/28 17:44:48 by rparodi #+# #+# */ +/* Updated: 2025/01/31 19:37:00 by rparodi ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef WRONGCAT_HPP +#define WRONGCAT_HPP + +#include "WrongAnimal.hpp" +#include + +class WrongCat : public WrongAnimal { + public: + WrongCat(); + ~WrongCat(); + virtual void makeSound() const; + protected: + + private: + +}; + +#endif diff --git a/cpp04/ex01/a.out b/cpp04/ex01/a.out deleted file mode 100755 index 623313169440bc0563c89d2290c624db54f05ab3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18720 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 diff --git a/cpp04/ex01/main.cpp b/cpp04/ex01/main.cpp index abfe447..3d8220d 100644 --- a/cpp04/ex01/main.cpp +++ b/cpp04/ex01/main.cpp @@ -6,22 +6,45 @@ /* By: rparodi +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/01/28 17:08:09 by rparodi #+# #+# */ -/* Updated: 2025/01/30 13:12:32 by rparodi ### ########.fr */ +/* Updated: 2025/01/31 19:52:09 by rparodi ### ########.fr */ /* */ /* ************************************************************************** */ #include "Animal.hpp" #include "Dog.hpp" #include "Cat.hpp" +#include "WrongAnimal.hpp" +#include "WrongCat.hpp" int main() { + std::cout << "\033[0;33m[ Building classes ]\033[0m" << std::endl; const Animal* meta = new Animal(); const Animal* j = new Dog(); const Animal* i = new Cat(); - std::cout << j->getType() << " " << std::endl; - std::cout << i->getType() << " " << std::endl; - i->makeSound(); //will output the cat sound! - j->makeSound(); + const WrongAnimal* k = new WrongAnimal(); + const WrongAnimal* l = new WrongCat(); + + std::cout << std::endl << "\033[0;33m[ Testing the getType method ]\033[0m" << std::endl; + std::cout << "Type of j:\t" << j->getType() << std::endl; + std::cout << "Type of i:\t" << i->getType() << std::endl; + std::cout << "Type of l:\t" << l->getType() << std::endl; + + std::cout << std::endl << "\033[0;33m[ Testing the makeSound method ]\033[0m" << std::endl; + std::cout << "Sound of meta:\t"; meta->makeSound(); + std::cout << std::endl << "Sound of i:\t"; + i->makeSound(); + std::cout << std::endl << "Sound of j:\t"; + j->makeSound(); + std::cout << std::endl << "Sound of k:\t"; + k->makeSound(); + std::cout << std::endl << "Sound of l:\t"; + l->makeSound(); + std::cout << std::endl << "\033[0;33m[ Deleting classes ]\033[0m" << std::endl; + delete meta; + delete j; + delete i; + delete k; + delete l; return 0; } diff --git a/cpp04/ex01/polyformism b/cpp04/ex01/polyformism new file mode 100755 index 0000000000000000000000000000000000000000..18418be4ad3fc9e48b5c018a7729ac1121fb638a GIT binary patch literal 65096 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