diff --git a/d03/ex00/Makefile b/d03/ex00/Makefile index 04faa47..068bccc 100644 --- a/d03/ex00/Makefile +++ b/d03/ex00/Makefile @@ -50,6 +50,9 @@ $(OBJS): $(HEADERS:%=$(D_HEADERS)/%) $(NAME): $(OBJS) $(CC) $(OBJS) -o $@ $(LIBS) +leaks: $(NAME) + valgrind --leak-check=full --show-leak-kinds=all ./$(NAME) + clean: rm -f $(OBJS) diff --git a/d03/ex00/action b/d03/ex00/action deleted file mode 100755 index 12250c7..0000000 Binary files a/d03/ex00/action and /dev/null differ diff --git a/d03/ex01/Makefile b/d03/ex01/Makefile index 6c6c6d0..fe2ed91 100644 --- a/d03/ex01/Makefile +++ b/d03/ex01/Makefile @@ -52,6 +52,9 @@ $(OBJS): $(HEADERS:%=$(D_HEADERS)/%) $(NAME): $(OBJS) $(CC) $(OBJS) -o $@ $(LIBS) +leaks: $(NAME) + valgrind --leak-check=full --show-leak-kinds=all ./$(NAME) + clean: rm -f $(OBJS) diff --git a/d03/ex01/ScavTrap.cpp b/d03/ex01/ScavTrap.cpp index 6ceacd4..62a6485 100644 --- a/d03/ex01/ScavTrap.cpp +++ b/d03/ex01/ScavTrap.cpp @@ -13,7 +13,9 @@ ScavTrap::ScavTrap( std::string name ) : ClapTrap(name) { return; } -ScavTrap::ScavTrap( ScavTrap const & src ) { +// base class better be explicitly called (g++ warning) +// https://stackoverflow.com/questions/43612772/base-class-class-a-should-be-explicitly-initialized-in-the-copy-constructor +ScavTrap::ScavTrap( ScavTrap const & src ) : ClapTrap(src) { _class = _dClass; *this = src; _number = getTotalNumber(); diff --git a/d03/ex01/robots b/d03/ex01/robots deleted file mode 100755 index a69d2a5..0000000 Binary files a/d03/ex01/robots and /dev/null differ diff --git a/d03/ex02/FragTrap.cpp b/d03/ex02/FragTrap.cpp index c8b4285..b9c2297 100644 --- a/d03/ex02/FragTrap.cpp +++ b/d03/ex02/FragTrap.cpp @@ -13,7 +13,7 @@ FragTrap::FragTrap( std::string name ) : ClapTrap(name) { return; } -FragTrap::FragTrap( FragTrap const & src ) { +FragTrap::FragTrap( FragTrap const & src ) : ClapTrap(src) { _class = _dClass; *this = src; _number = getTotalNumber(); diff --git a/d03/ex02/Makefile b/d03/ex02/Makefile index f4fc536..38e75ca 100644 --- a/d03/ex02/Makefile +++ b/d03/ex02/Makefile @@ -54,6 +54,9 @@ $(OBJS): $(HEADERS:%=$(D_HEADERS)/%) $(NAME): $(OBJS) $(CC) $(OBJS) -o $@ $(LIBS) +leaks: $(NAME) + valgrind --leak-check=full --show-leak-kinds=all ./$(NAME) + clean: rm -f $(OBJS) diff --git a/d03/ex02/ScavTrap.cpp b/d03/ex02/ScavTrap.cpp index 6ceacd4..305bc02 100644 --- a/d03/ex02/ScavTrap.cpp +++ b/d03/ex02/ScavTrap.cpp @@ -13,7 +13,7 @@ ScavTrap::ScavTrap( std::string name ) : ClapTrap(name) { return; } -ScavTrap::ScavTrap( ScavTrap const & src ) { +ScavTrap::ScavTrap( ScavTrap const & src ) : ClapTrap(src) { _class = _dClass; *this = src; _number = getTotalNumber(); diff --git a/d03/ex02/robots b/d03/ex02/robots index 9a7e859..f6c1d84 100755 Binary files a/d03/ex02/robots and b/d03/ex02/robots differ diff --git a/d03/ex03/DiamondTrap.cpp b/d03/ex03/DiamondTrap.cpp index 666f12d..c8407c2 100644 --- a/d03/ex03/DiamondTrap.cpp +++ b/d03/ex03/DiamondTrap.cpp @@ -15,7 +15,10 @@ DiamondTrap::DiamondTrap( std::string name ) return; } -DiamondTrap::DiamondTrap( DiamondTrap const & src ) { +DiamondTrap::DiamondTrap( DiamondTrap const & src ) +: ClapTrap(src) +, FragTrap(src) +, ScavTrap(src) { _class = _dClass; *this = src; _number = getTotalNumber(); diff --git a/d03/ex03/FragTrap.cpp b/d03/ex03/FragTrap.cpp index 16c32be..10ec932 100644 --- a/d03/ex03/FragTrap.cpp +++ b/d03/ex03/FragTrap.cpp @@ -13,7 +13,7 @@ FragTrap::FragTrap( std::string name ) : ClapTrap(name) { return; } -FragTrap::FragTrap( FragTrap const & src ) { +FragTrap::FragTrap( FragTrap const & src ) : ClapTrap(src) { _class = _dClass; *this = src; _number = getTotalNumber(); diff --git a/d03/ex03/Makefile b/d03/ex03/Makefile index b31dfea..63aa15b 100644 --- a/d03/ex03/Makefile +++ b/d03/ex03/Makefile @@ -59,6 +59,9 @@ $(OBJS): $(HEADERS:%=$(D_HEADERS)/%) $(NAME): $(OBJS) $(CC) $(OBJS) -o $@ $(LIBS) +leaks: $(NAME) + valgrind --leak-check=full --show-leak-kinds=all ./$(NAME) + clean: rm -f $(OBJS) diff --git a/d03/ex03/ScavTrap.cpp b/d03/ex03/ScavTrap.cpp index 6ceacd4..305bc02 100644 --- a/d03/ex03/ScavTrap.cpp +++ b/d03/ex03/ScavTrap.cpp @@ -13,7 +13,7 @@ ScavTrap::ScavTrap( std::string name ) : ClapTrap(name) { return; } -ScavTrap::ScavTrap( ScavTrap const & src ) { +ScavTrap::ScavTrap( ScavTrap const & src ) : ClapTrap(src) { _class = _dClass; *this = src; _number = getTotalNumber(); diff --git a/d03/ex03/robots b/d03/ex03/robots deleted file mode 100755 index 23d4c8b..0000000 Binary files a/d03/ex03/robots and /dev/null differ diff --git a/d03/jodufour/Makefile b/d03/jodufour/Makefile deleted file mode 100644 index 8f35f9d..0000000 --- a/d03/jodufour/Makefile +++ /dev/null @@ -1,78 +0,0 @@ -###################################### -# COMMANDS # -###################################### -CXX = c++ -c -LINK = c++ -MKDIR = mkdir -p -RM = rm -rf - -###################################### -# EXECUTABLE # -###################################### -NAME = ex01.out - -####################################### -# DIRECTORIES # -####################################### -SRC_DIR = srcs/ -OBJ_DIR = objs/ -PRV_DIR = private/ - -###################################### -# SOURCE FILES # -###################################### -SRC = \ - ${addprefix class/, \ - ClapTrap.cpp \ - ScavTrap.cpp \ - } \ - main.cpp - -###################################### -# OBJECT FILES # -###################################### -OBJ = ${SRC:.cpp=.o} -OBJ := ${addprefix ${OBJ_DIR}, ${OBJ}} - -DEP = ${OBJ:.o=.d} - -####################################### -# FLAGS # -####################################### -CPPFLAGS = -Wall -Wextra -Werror -CPPFLAGS += -std=c++98 -CPPFLAGS += -MMD -MP -CPPFLAGS += -I${PRV_DIR} - -LDFLAGS = - -ifeq (${DEBUG}, 1) - CPPFLAGS += -g - CPPFLAGS += -DDEBUG=1 -endif - -####################################### -# RULES # -####################################### -${NAME}: ${OBJ} - ${LINK} ${OBJ} ${LDFLAGS} ${OUTPUT_OPTION} - -all: ${NAME} - --include ${DEP} - -${OBJ_DIR}%.o: ${SRC_DIR}%.cpp - @${MKDIR} ${@D} - ${CXX} ${CPPFLAGS} $< ${OUTPUT_OPTION} - -clean: - ${RM} ${OBJ_DIR} ${NAME} vgcore.* - -fclean: - ${RM} ${OBJ_DIR} ${NAME} vgcore.* - -re: clean all - -fre: fclean all - -.PHONY: all clean fclean re fre diff --git a/d03/jodufour/ex01.out b/d03/jodufour/ex01.out deleted file mode 100755 index 37ca85e..0000000 Binary files a/d03/jodufour/ex01.out and /dev/null differ diff --git a/d03/jodufour/objs/class/ClapTrap.d b/d03/jodufour/objs/class/ClapTrap.d deleted file mode 100644 index 9300889..0000000 --- a/d03/jodufour/objs/class/ClapTrap.d +++ /dev/null @@ -1,3 +0,0 @@ -objs/class/ClapTrap.o: srcs/class/ClapTrap.cpp private/class/ClapTrap.hpp - -private/class/ClapTrap.hpp: diff --git a/d03/jodufour/objs/class/ClapTrap.o b/d03/jodufour/objs/class/ClapTrap.o deleted file mode 100644 index b2e8d78..0000000 Binary files a/d03/jodufour/objs/class/ClapTrap.o and /dev/null differ diff --git a/d03/jodufour/objs/class/ScavTrap.d b/d03/jodufour/objs/class/ScavTrap.d deleted file mode 100644 index 9523dbf..0000000 --- a/d03/jodufour/objs/class/ScavTrap.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/class/ScavTrap.o: srcs/class/ScavTrap.cpp private/class/ScavTrap.hpp \ - private/class/ClapTrap.hpp - -private/class/ScavTrap.hpp: - -private/class/ClapTrap.hpp: diff --git a/d03/jodufour/objs/class/ScavTrap.o b/d03/jodufour/objs/class/ScavTrap.o deleted file mode 100644 index 13f80e8..0000000 Binary files a/d03/jodufour/objs/class/ScavTrap.o and /dev/null differ diff --git a/d03/jodufour/objs/main.d b/d03/jodufour/objs/main.d deleted file mode 100644 index b22d75a..0000000 --- a/d03/jodufour/objs/main.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/main.o: srcs/main.cpp private/class/ScavTrap.hpp \ - private/class/ClapTrap.hpp - -private/class/ScavTrap.hpp: - -private/class/ClapTrap.hpp: diff --git a/d03/jodufour/objs/main.o b/d03/jodufour/objs/main.o deleted file mode 100644 index ab06d7a..0000000 Binary files a/d03/jodufour/objs/main.o and /dev/null differ diff --git a/d03/jodufour/private/class/ClapTrap.hpp b/d03/jodufour/private/class/ClapTrap.hpp deleted file mode 100644 index 3597dcf..0000000 --- a/d03/jodufour/private/class/ClapTrap.hpp +++ /dev/null @@ -1,59 +0,0 @@ -#ifndef CLAPTRAP_HPP -# define CLAPTRAP_HPP - -# include - -# ifndef DEBUG -# define DEBUG 0 -# endif - -class ClapTrap -{ -private: - // Attributes - static std::string const _defaultName; - static unsigned int const _defaultHitPoints; - static unsigned int const _defaultEnergyPoints; - static unsigned int const _defaultAttackDamages; - -protected: - // Attributes - std::string _name; - unsigned int _hitPoints; - unsigned int _energyPoints; - unsigned int _attackDamages; - - // Constructors - ClapTrap( - std::string const &name, - unsigned int const hitPoints, - unsigned int const energyPoints, - unsigned int const attackDamages); - -public: - // Constructors - ClapTrap(std::string const &name = ClapTrap::_defaultName); - ClapTrap(ClapTrap const &src); - - // Destructors - virtual ~ClapTrap(void); - - // Accessors - std::string const &getName(void) const; - - unsigned int getHitPoints(void) const; - unsigned int getEnergyPoints(void) const; - unsigned int getAttackDamages(void) const; - - // Member functions - virtual void attack(std::string const &target); - void beRepaired(unsigned int const amount); - void takeDamage(unsigned int const amount); - - // Operators - ClapTrap &operator=(ClapTrap const &rhs); -}; - -std::ostream &operator<<(std::ostream &o, ClapTrap const &rhs); - -#endif diff --git a/d03/jodufour/private/class/ScavTrap.hpp b/d03/jodufour/private/class/ScavTrap.hpp deleted file mode 100644 index cad8a2a..0000000 --- a/d03/jodufour/private/class/ScavTrap.hpp +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef SCAVTRAP_HPP -# define SCAVTRAP_HPP - -# include "ClapTrap.hpp" - -# ifndef DEBUG -# define DEBUG 0 -# endif - -class ScavTrap : public ClapTrap -{ -private: - // Attributes - bool _activeMode; - - static std::string const _defaultName; - static unsigned int const _defaultHitPoints; - static unsigned int const _defaultEnergyPoints; - static unsigned int const _defaultAttackDamages; - -public: - // Constructors - ScavTrap(std::string const &name = ScavTrap::_defaultName); - ScavTrap(ScavTrap const &src); - - // Destructors - virtual ~ScavTrap(void); - - // Member functions - virtual void attack(std::string const &target); - void guardGate(void); - - // Operators - ScavTrap &operator=(ScavTrap const &rhs); -}; - -std::ostream &operator<<(std::ostream &o, ScavTrap const &rhs); - -#endif diff --git a/d03/jodufour/srcs/class/ClapTrap.cpp b/d03/jodufour/srcs/class/ClapTrap.cpp deleted file mode 100644 index 9733927..0000000 --- a/d03/jodufour/srcs/class/ClapTrap.cpp +++ /dev/null @@ -1,235 +0,0 @@ -#include "class/ClapTrap.hpp" - -// ************************************************************************** // -// Constructors // -// ************************************************************************** // - -ClapTrap::ClapTrap(std::string const &name) : - _name(name), - _hitPoints(ClapTrap::_defaultHitPoints), - _energyPoints(ClapTrap::_defaultEnergyPoints), - _attackDamages(ClapTrap::_defaultAttackDamages) -{ - if (DEBUG) - std::cout - << "Creating ClapTrap " - << this->_name - << " (" << this->_hitPoints << ")" - << " (" << this->_energyPoints << ")" - << " (" << this->_attackDamages << ")" - << std::endl; -} - -ClapTrap::ClapTrap(ClapTrap const &src) : - _name(src._name), - _hitPoints(src._hitPoints), - _energyPoints(src._energyPoints), - _attackDamages(src._attackDamages) -{ - if (DEBUG) - std::cout - << "Creating ClapTrap " - << this->_name - << " (" << this->_hitPoints << ")" - << " (" << this->_energyPoints << ")" - << " (" << this->_attackDamages << ")" - << std::endl; -} - -ClapTrap::ClapTrap( - std::string const &name, - unsigned int const hitPoints, - unsigned int const energyPoints, - unsigned int const attackDamages) : - _name(name), - _hitPoints(hitPoints), - _energyPoints(energyPoints), - _attackDamages(attackDamages) -{ - if (DEBUG) - std::cout - << "Creating ClapTrap " - << this->_name - << " (" << this->_hitPoints << ")" - << " (" << this->_energyPoints << ")" - << " (" << this->_attackDamages << ")" - << std::endl; -} - -// ************************************************************************* // -// Destructors // -// ************************************************************************* // - -ClapTrap::~ClapTrap(void) -{ - if (DEBUG) - std::cout - << "Destroying ClapTrap " - << this->_name - << std::endl; -} - -// ************************************************************************* // -// Accessors // -// ************************************************************************* // - -std::string const &ClapTrap::getName(void) const -{ - if (DEBUG) - std::cout - << "Calling ClapTrap::getName()" - << std::endl; - return this->_name; -} - -unsigned int ClapTrap::getHitPoints(void) const -{ - if (DEBUG) - std::cout - << "Calling ClapTrap::getHitPoints()" - << std::endl; - return this->_hitPoints; -} - -unsigned int ClapTrap::getEnergyPoints(void) const -{ - if (DEBUG) - std::cout - << "Calling ClapTrap::getEnergyPoints()" - << std::endl; - return this->_energyPoints; -} - -unsigned int ClapTrap::getAttackDamages(void) const -{ - if (DEBUG) - std::cout - << "Calling ClapTrap::getAttackDamages()" - << std::endl; - return this->_attackDamages; -} - -// ************************************************************************* // -// Public Member Functions // -// ************************************************************************* // - -void ClapTrap::attack(std::string const &target) -{ - if (DEBUG) - std::cout - << "Calling ClapTrap::attack()" - << std::endl; - std::cout - << "ClapTrap " - << this->_name; - if (this->_hitPoints && this->_energyPoints) - std::cout - << " deals " - << this->_attackDamages - << " damages to "; - else if (!this->_hitPoints) - std::cout - << " hasn't enough hit points to attack "; - else - std::cout - << " hasn't enough energy points to attack "; - std::cout - << target - << std::endl; - this->_energyPoints -= !!this->_energyPoints; -} - -void ClapTrap::beRepaired(unsigned int const amount) -{ - if (DEBUG) - std::cout - << "Calling ClapTrap::beRepaired()" - << std::endl; - std::cout - << "ClapTrap " - << this->_name; - if (this->_hitPoints && this->_energyPoints) - { - std::cout - << " repairs itself for an amount of " - << amount; - this->_hitPoints += amount; - } - else if (!this->_hitPoints) - std::cout - << " hasn't enough hit points to repair itself"; - else - std::cout - << " hasn't enough energy points to repair itself"; - std::cout << std::endl; - this->_energyPoints -= !!this->_energyPoints; -} - -void ClapTrap::takeDamage(unsigned int const amount) -{ - if (DEBUG) - std::cout - << "Calling ClapTrap::takeDamage()" - << std::endl; - std::cout - << "ClapTrap " - << this->_name; - if (this->_hitPoints && this->_energyPoints) - { - std::cout - << " takes " - << amount - << " damages"; - if (this->_hitPoints < amount) - this->_hitPoints = 0; - else - this->_hitPoints -= amount; - } - else if (!this->_hitPoints) - std::cout - << " hasn't enough hit points to take damages"; - else - std::cout - << " hasn't enough energy points to take damages"; - std::cout << std::endl; -} - -// ************************************************************************* // -// Operators // -// ************************************************************************* // - -ClapTrap &ClapTrap::operator=(ClapTrap const &rhs) -{ - if (DEBUG) - std::cout - << "Calling ClapTrap::operator=()" - << std::endl; - if (this != &rhs) - { - this->_name = rhs._name; - this->_hitPoints = rhs._hitPoints; - this->_energyPoints = rhs._energyPoints; - this->_attackDamages = rhs._attackDamages; - } - return *this; -} - -std::ostream &operator<<(std::ostream &o, ClapTrap const &rhs) -{ - o - << "ClapTrap:" << std::endl - << "\t" "name: " << rhs.getName() << std::endl - << "\t" "hitPoints: " << rhs.getHitPoints() << std::endl - << "\t" "energyPoints: " << rhs.getEnergyPoints() << std::endl - << "\t" "attackDamages: " << rhs.getAttackDamages() << std::endl; - return o; -} - -// ************************************************************************** // -// Private Attributes // -// ************************************************************************** // - -std::string const ClapTrap::_defaultName = std::string("defaultName"); -unsigned int const ClapTrap::_defaultHitPoints = 10; -unsigned int const ClapTrap::_defaultEnergyPoints = 10; -unsigned int const ClapTrap::_defaultAttackDamages = 0; diff --git a/d03/jodufour/srcs/class/ScavTrap.cpp b/d03/jodufour/srcs/class/ScavTrap.cpp deleted file mode 100644 index 441f9e3..0000000 --- a/d03/jodufour/srcs/class/ScavTrap.cpp +++ /dev/null @@ -1,148 +0,0 @@ -#include "class/ScavTrap.hpp" - -// ************************************************************************** // -// Constructors // -// ************************************************************************** // - -ScavTrap::ScavTrap(std::string const &name) : - ClapTrap( - name, - ScavTrap::_defaultHitPoints, - ScavTrap::_defaultEnergyPoints, - ScavTrap::_defaultAttackDamages), - _activeMode(false) -{ - if (DEBUG) - std::cout - << std::boolalpha - << "Creating ScavTrap " - << this->_name - << " (" << this->_hitPoints << ")" - << " (" << this->_energyPoints << ")" - << " (" << this->_attackDamages << ")" - << " (" << this->_activeMode << ")" - << std::endl; -} - -ScavTrap::ScavTrap(ScavTrap const &src) : - ClapTrap( - src._name, - src._hitPoints, - src._energyPoints, - src._attackDamages) -{ - if (DEBUG) - std::cout - << std::boolalpha - << "Creating ScavTrap " - << this->_name - << " (" << this->_hitPoints << ")" - << " (" << this->_energyPoints << ")" - << " (" << this->_attackDamages << ")" - << " (" << this->_activeMode << ")" - << std::endl; -} - -// ************************************************************************* // -// Destructors // -// ************************************************************************* // - -ScavTrap::~ScavTrap(void) -{ - if (DEBUG) - std::cout - << "Destroying ScavTrap " - << this->_name - << std::endl; -} - -// ************************************************************************* // -// Public Member Functions // -// ************************************************************************* // - -void ScavTrap::attack(std::string const &target) -{ - if (DEBUG) - std::cout - << "Calling ScavTrap::attack()" - << std::endl; - std::cout - << "ScavTrap " - << this->_name; - if (this->_hitPoints && this->_energyPoints) - std::cout - << " deals " - << this->_attackDamages - << " damages to "; - else if (!this->_hitPoints) - std::cout - << " hasn't enough hit points to attack "; - else - std::cout - << " hasn't enough energy points to attack "; - std::cout - << target - << std::endl; - this->_energyPoints -= !!this->_energyPoints; -} - -void ScavTrap::guardGate(void) -{ - if (DEBUG) - std::cout - << "Calling ScavTrap::guardGate()" - << std::endl; - std::cout - << "ScavTrap " - << this->_name; - if (!this->_activeMode) - std::cout - << " enters "; - else - std::cout - << " leaves "; - std::cout - << "Gate keeper mode" - << std::endl; - this->_activeMode ^= true; -} - -// ************************************************************************* // -// Operators // -// ************************************************************************* // - -ScavTrap &ScavTrap::operator=(ScavTrap const &rhs) -{ - if (DEBUG) - std::cout - << "Calling ScavTrap::operator=()" - << std::endl; - if (this != &rhs) - { - this->_name = rhs._name; - this->_hitPoints = rhs._hitPoints; - this->_energyPoints = rhs._energyPoints; - this->_attackDamages = rhs._attackDamages; - this->_activeMode = rhs._activeMode; - } - return *this; -} - -std::ostream &operator<<(std::ostream &o, ScavTrap const &rhs) -{ - o << "ScavTrap:" << std::endl - << "\t" "name: " << rhs.getName() << std::endl - << "\t" "hitPoints: " << rhs.getHitPoints() << std::endl - << "\t" "energyPoints: " << rhs.getEnergyPoints() << std::endl - << "\t" "attackDamages: " << rhs.getAttackDamages() << std::endl; - return o; -} - -// ************************************************************************** // -// Private Attributes // -// ************************************************************************** // - -std::string const ScavTrap::_defaultName = std::string("defaultName"); -unsigned int const ScavTrap::_defaultHitPoints = 100; -unsigned int const ScavTrap::_defaultEnergyPoints = 50; -unsigned int const ScavTrap::_defaultAttackDamages = 20; diff --git a/d03/jodufour/srcs/main.cpp b/d03/jodufour/srcs/main.cpp deleted file mode 100644 index dfe9c25..0000000 --- a/d03/jodufour/srcs/main.cpp +++ /dev/null @@ -1,53 +0,0 @@ -#include -#include "class/ScavTrap.hpp" - -int main(void) -{ - ClapTrap robot1("robot1"); - ScavTrap robot2("robot2"); - ScavTrap robot3("robot3"); - ClapTrap robot4("robot4"); - -std::cout << "\nassignement 1:\n"; - ScavTrap robotmp1("robot5"); - robotmp1.guardGate(); -std::cout << "copy:\n"; - ClapTrap robot6(robotmp1); // PBM : it says it's a ScavTrap but it has no guardGate()... -// robot6.guardGate(); -std::cout << "END assignement 1:\n\n"; - -//std::cout << "assignement 2:\n"; -// ScavTrap robotmp2("robot7"); -// ScavTrap robot8(robotmp2); -// robot8.guardGate(); -// -//std::cout << "assignement 3:\n"; -// ClapTrap robotmp3("robot9"); // PBM : assignation doesn't work... -//// ScavTrap robot10(robotmp3); -//// robot10.guardGate(); -// -//std::cout << "assignement 4:\n"; -// ClapTrap robotmp4("robot11"); -// ClapTrap robot12(robotmp4); -//// robot12.guardGate(); - - - - ClapTrap ct(std::string("T800")); - ScavTrap st(std::string("T1000")); - - std::cout << ct << std::endl; - std::cout << st << std::endl; - - st = ScavTrap(std::string("TX")); - - std::cout << st << std::endl; - - st.attack(std::string("Sarah CONNOR")); - - st.guardGate(); - st.guardGate(); - st.guardGate(); - - return EXIT_SUCCESS; -} diff --git a/d03/test_inheritance/Base.cpp b/d03/test_inheritance/Base.cpp deleted file mode 100644 index 5447882..0000000 --- a/d03/test_inheritance/Base.cpp +++ /dev/null @@ -1,41 +0,0 @@ -#include "Base.hpp" - -/* - * default/parametric constructor - */ - -Base::Base( void ) { - std::cout << "base default constructor\n"; - return; -} - -/* - * destructor - */ - -Base::~Base( void ) { - return; -} - -/* - * copy constructor - */ - -Base::Base( Base const & src ) { - std::cout << "base copy constructor\n"; - *this = src; - return; -} - -/* - * assignement operator - */ - -Base & Base::operator=( Base const & rhs ) { - std::cout << "base assignations operator\n"; - return *this; -} - -Base::Base(int i) { - std::cout << "base parameters constructor\n"; -} diff --git a/d03/test_inheritance/Base.hpp b/d03/test_inheritance/Base.hpp deleted file mode 100644 index 3b7f308..0000000 --- a/d03/test_inheritance/Base.hpp +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef BASE_HPP -# define BASE_HPP - -#include - -class Base { - -public: - - Base( void ); // default/parametric constructor - Base( Base const & src ); // copy constructor - ~Base( void ); // destructor - - Base & operator=( Base const & rhs ); // assignement operator - - Base(int i); -}; - -#endif diff --git a/d03/test_inheritance/a.out b/d03/test_inheritance/a.out deleted file mode 100755 index c12ee8d..0000000 Binary files a/d03/test_inheritance/a.out and /dev/null differ diff --git a/d03/test_inheritance/main.cpp b/d03/test_inheritance/main.cpp deleted file mode 100644 index fd50b30..0000000 --- a/d03/test_inheritance/main.cpp +++ /dev/null @@ -1,39 +0,0 @@ -#include - -class Base { -public: - Base () : _n(1) {} - Base & operator=(Base const & rhs) { - _n = rhs.getN(); - std::cout << "base assignation operator\n"; - return *this; - } - int getN() const { - return _n; - } - void putN(int i) { - _n = i; - } -protected: - int _n; -}; - -class Derived : public Base { -public: - Derived & operator=(Derived const & rhs) { - Base::operator=(rhs); - std::cout << "derived assignation operator\n"; - return *this;} -}; - -int main () { - - Derived foo1; - Derived foo2; - foo2.putN(2); - std::cout << foo1.getN() << " " << foo2.getN() << "\n"; - foo2 = foo1; - std::cout << foo1.getN() << " " << foo2.getN() << "\n"; - - return 0; -}