From c1990815e2b633bdc44b2737aa7fedbb8fb94e8e Mon Sep 17 00:00:00 2001 From: hugogogo Date: Sat, 5 Feb 2022 19:14:56 +0100 Subject: [PATCH] debut d01 ex03 --- d01/ex02/Makefile | 61 ++++++++++++++++++++++++++++++++++++++++ d01/ex02/brain | Bin 0 -> 21360 bytes d01/ex02/main.cpp | 26 +++++++++++++++++ d01/ex03/HumanA.cpp | 15 ++++++++++ d01/ex03/HumanA.hpp | 25 +++++++++++++++++ d01/ex03/HumanB.cpp | 21 ++++++++++++++ d01/ex03/HumanB.hpp | 26 +++++++++++++++++ d01/ex03/Makefile | 66 ++++++++++++++++++++++++++++++++++++++++++++ d01/ex03/Weapon.cpp | 20 ++++++++++++++ d01/ex03/Weapon.hpp | 23 +++++++++++++++ d01/ex03/main.cpp | 23 +++++++++++++++ 11 files changed, 306 insertions(+) create mode 100644 d01/ex02/Makefile create mode 100755 d01/ex02/brain create mode 100644 d01/ex02/main.cpp create mode 100644 d01/ex03/HumanA.cpp create mode 100644 d01/ex03/HumanA.hpp create mode 100644 d01/ex03/HumanB.cpp create mode 100644 d01/ex03/HumanB.hpp create mode 100644 d01/ex03/Makefile create mode 100644 d01/ex03/Weapon.cpp create mode 100644 d01/ex03/Weapon.hpp create mode 100644 d01/ex03/main.cpp diff --git a/d01/ex02/Makefile b/d01/ex02/Makefile new file mode 100644 index 0000000..de53531 --- /dev/null +++ b/d01/ex02/Makefile @@ -0,0 +1,61 @@ +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # +# . name = value . name is case sensitive # +# VARIABLES . or name = value \ . use VPATH only for .c # +# . value . or .cpp # +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # + +NAME = brain + +CC = clang++ +CFLAGS = -Wall -Wextra -Werror $(INCLUDES) -std=c++98 -g3 + +VPATH = $(D_SRCS) + +LIBS = + +INCLUDES = -I$(D_HEADERS) + +D_SRCS = . +SRCS = main.cpp + +D_HEADERS = . +HEADERS = + +D_OBJS = builds +OBJS = $(SRCS:%.cpp=$(D_OBJS)/%.o) + +RM_D_OBJS = rm -rf $(D_OBJS) +ifeq "$(D_OBJS)" "." +RM_D_OBJS = +endif + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # +# . target: prerequisites . $@ : target # +# RULES . recipe . $< : 1st prerequisite # +# . recipe . $^ : all prerequisites # +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # + +all: $(NAME) + +$(D_OBJS)/%.o: %.cpp | $(D_OBJS) + $(CC) $(CFLAGS) -c $< -o $@ + +$(D_OBJS): + mkdir $@ + +$(OBJS): $(HEADERS:%=$(D_HEADERS)/%) + +$(NAME): $(OBJS) + $(CC) $(OBJS) -o $@ $(LIBS) + +clean: + rm -f $(OBJS) + +fclean: clean + rm -f $(NAME) + $(RM_D_OBJS) + +re: fclean all + +.PHONY : all clean fclean re bonus run valgrind diff --git a/d01/ex02/brain b/d01/ex02/brain new file mode 100755 index 0000000000000000000000000000000000000000..27c03b4446d2739afa9cd9acb87db58530d09ffd GIT binary patch literal 21360 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 NGXZIzJO1VR|3Al?TLu6C literal 0 HcmV?d00001 diff --git a/d01/ex02/main.cpp b/d01/ex02/main.cpp new file mode 100644 index 0000000..f760523 --- /dev/null +++ b/d01/ex02/main.cpp @@ -0,0 +1,26 @@ +#include +#include + +int main(void) +{ + std::string brain = "HI THIS IS BRAIN"; + std::string * stringPTR = &brain; + std::string & stringREF = brain; + +// • L’adresse de la string en mémoire. +// • L’adresse stockée dans stringPTR. +// • L’adresse stockée dans stringREF. +// Puis : +// • La valeur de la string. +// • La valeur pointée par stringPTR. +// • La valeur pointée par stringREF. + + std::cout << &brain << std::endl; + std::cout << stringPTR << std::endl; + std::cout << &stringREF << std::endl << std::endl; + std::cout << brain << std::endl; + std::cout << *stringPTR << std::endl; + std::cout << stringREF << std::endl; + + return (0); +} diff --git a/d01/ex03/HumanA.cpp b/d01/ex03/HumanA.cpp new file mode 100644 index 0000000..63fb078 --- /dev/null +++ b/d01/ex03/HumanA.cpp @@ -0,0 +1,15 @@ +#include "HumanA.hpp" + +HumanA::HumanA( std::string name, Weapon weapon ) { + + this->_name = name; + this->_weapon = &weapon ; + +} +HumanA::~HumanA() {} + +void HumanA::attack( void ) { + + std::cout << this->_name << " attacks with their " << this->_weapon->getType() << std::endl; + +} diff --git a/d01/ex03/HumanA.hpp b/d01/ex03/HumanA.hpp new file mode 100644 index 0000000..ece7e04 --- /dev/null +++ b/d01/ex03/HumanA.hpp @@ -0,0 +1,25 @@ +#ifndef HUMANA_HPP +# define HUMANA_HPP + +#include "Weapon.hpp" +#include +#include + +class HumanA { + +public: + + HumanA( std::string name, Weapon weapon ); + ~HumanA(); + + void attack( void ); + +private: + + std::string _name; + Weapon * _weapon; + +}; + +#endif + diff --git a/d01/ex03/HumanB.cpp b/d01/ex03/HumanB.cpp new file mode 100644 index 0000000..23eb7c1 --- /dev/null +++ b/d01/ex03/HumanB.cpp @@ -0,0 +1,21 @@ +#include "HumanB.hpp" + +HumanB::HumanB( std::string name ) { + + this->_name = name; + +} +HumanB::~HumanB() {} + +void setWeapon( Weapon weapon ) { + + this->_weapon = &weapon; + +} + +void HumanB::attack( void ) { + + std::cout << this->_name << " attacks with their " << this->_weapon->getType() << std::endl; + +} + diff --git a/d01/ex03/HumanB.hpp b/d01/ex03/HumanB.hpp new file mode 100644 index 0000000..bc920b3 --- /dev/null +++ b/d01/ex03/HumanB.hpp @@ -0,0 +1,26 @@ +#ifndef HUMANB_HPP +# define HUMANB_HPP + +#include "Weapon.hpp" +#include +#include + +class HumanB { + +public: + + HumanB( std::string name ); + ~HumanB(); + + void attack( void ); + void setWeapon( Weapon weapon ); + +private: + + std::string _name; + Weapon * _weapon; + +}; + +#endif + diff --git a/d01/ex03/Makefile b/d01/ex03/Makefile new file mode 100644 index 0000000..82360fa --- /dev/null +++ b/d01/ex03/Makefile @@ -0,0 +1,66 @@ +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # +# . name = value . name is case sensitive # +# VARIABLES . or name = value \ . use VPATH only for .c # +# . value . or .cpp # +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # + +NAME = war + +CC = clang++ +CFLAGS = -Wall -Wextra -Werror $(INCLUDES) -std=c++98 -g3 + +VPATH = $(D_SRCS) + +LIBS = + +INCLUDES = -I$(D_HEADERS) + +D_SRCS = . +SRCS = main.cpp \ + Weapon.cpp \ + HumanA.cpp \ + HumanB.cpp + +D_HEADERS = . +HEADERS = Weapon.hpp \ + HumanA.hpp \ + HumanB.hpp + +D_OBJS = builds +OBJS = $(SRCS:%.cpp=$(D_OBJS)/%.o) + +RM_D_OBJS = rm -rf $(D_OBJS) +ifeq "$(D_OBJS)" "." +RM_D_OBJS = +endif + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # +# . target: prerequisites . $@ : target # +# RULES . recipe . $< : 1st prerequisite # +# . recipe . $^ : all prerequisites # +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # + +all: $(NAME) + +$(D_OBJS)/%.o: %.cpp | $(D_OBJS) + $(CC) $(CFLAGS) -c $< -o $@ + +$(D_OBJS): + mkdir $@ + +$(OBJS): $(HEADERS:%=$(D_HEADERS)/%) + +$(NAME): $(OBJS) + $(CC) $(OBJS) -o $@ $(LIBS) + +clean: + rm -f $(OBJS) + +fclean: clean + rm -f $(NAME) + $(RM_D_OBJS) + +re: fclean all + +.PHONY : all clean fclean re bonus run valgrind diff --git a/d01/ex03/Weapon.cpp b/d01/ex03/Weapon.cpp new file mode 100644 index 0000000..36cab26 --- /dev/null +++ b/d01/ex03/Weapon.cpp @@ -0,0 +1,20 @@ +#include "Weapon.hpp" + +Weapon::Weapon( std::string type ) { + + this->_type = type; + +} +Weapon::~Weapon() {} + +std::string Weapon::getType( void ) { + + return this->_type; + +} + +void Weapon::setType( std::string type ) { + + this->_type = type; + +} diff --git a/d01/ex03/Weapon.hpp b/d01/ex03/Weapon.hpp new file mode 100644 index 0000000..9b65b7c --- /dev/null +++ b/d01/ex03/Weapon.hpp @@ -0,0 +1,23 @@ +#ifndef WEAPON_HPP +# define WEAPON_HPP + +#include +#include + +class Weapon { + +public: + + Weapon( std::string type ); + ~Weapon(); + + std::string getType( void ); + void setType( std::string type ); + +private: + + std::string _type; + +}; + +#endif diff --git a/d01/ex03/main.cpp b/d01/ex03/main.cpp new file mode 100644 index 0000000..539263c --- /dev/null +++ b/d01/ex03/main.cpp @@ -0,0 +1,23 @@ +#include "HumanA.hpp" +#include "HumanB.hpp" +#include "Weapon.hpp" + +int main() +{ + { + Weapon club = Weapon("crude spiked club"); + HumanA bob("Bob", club); + bob.attack(); + club.setType("some other type of club"); + bob.attack(); + } + { + Weapon club = Weapon("crude spiked club"); + HumanB jim("Jim"); + jim.setWeapon(club); + jim.attack(); + club.setType("some other type of club"); + jim.attack(); + } + return 0; +}