fix(norm): add copy contructor

This commit is contained in:
Khaïs COLIN 2025-05-27 13:39:30 +02:00
parent 7fb5f99a7a
commit 57de4fa948
Signed by: logistic-bot
SSH key fingerprint: SHA256:RlpiqKeXpcPFZZ4y9Ou4xi2M8OhRJovIwDlbCaMsuAo
20 changed files with 93 additions and 0 deletions

View file

@ -7,6 +7,14 @@ ClapTrap::ClapTrap()
std::cout << "ClapTrap::ClapTrap()" << std::endl;
}
ClapTrap::ClapTrap(const ClapTrap &other) {
name = other.name;
hit_points = other.hit_points;
energy_points = other.energy_points;
attack_damage = other.attack_damage;
std::cout << "ClapTrap::ClapTrap(const ClapTrap &other)" << std::endl;
}
ClapTrap::ClapTrap(std::string name)
: name(name), hit_points(10), energy_points(10), attack_damage(0) {
std::cout << "ClapTrap::ClapTrap(" << name << ")" << std::endl;

View file

@ -12,6 +12,7 @@ protected:
public:
ClapTrap();
ClapTrap(const ClapTrap &other);
ClapTrap(std::string name);
~ClapTrap();
ClapTrap &operator=(const ClapTrap &other);

View file

@ -11,6 +11,15 @@ DiamondTrap::DiamondTrap() : FragTrap(), ScavTrap() {
ClapTrap::name = name + "_clap_name";
std::cout << "DiamondTrap::DiamondTrap()" << std::endl;
}
DiamondTrap::DiamondTrap(const DiamondTrap &other) {
name = other.name;
hit_points = other.hit_points;
energy_points = other.energy_points;
attack_damage = other.attack_damage;
std::cout << "DiamondTrap::DiamondTrap(const DiamondTrap &other)" << std::endl;
}
DiamondTrap::DiamondTrap(std::string name) : name(name) {
const FragTrap fragtrap = FragTrap(name);
@ -21,11 +30,13 @@ DiamondTrap::DiamondTrap(std::string name) : name(name) {
ClapTrap::name = name + "_clap_name";
std::cout << "DiamondTrap::DiamondTrap(" << name << ")" << std::endl;
}
DiamondTrap &DiamondTrap::operator=(DiamondTrap &other) {
this->name = other.name;
ClapTrap::operator=(other);
return *this;
}
DiamondTrap::~DiamondTrap() {}
void DiamondTrap::whoAmI() {

View file

@ -10,6 +10,7 @@ private:
public:
DiamondTrap();
DiamondTrap(const DiamondTrap &other);
DiamondTrap(std::string name);
DiamondTrap &operator=(DiamondTrap &other);
~DiamondTrap();

View file

@ -8,6 +8,14 @@ FragTrap::FragTrap() {
attack_damage = 30;
}
FragTrap::FragTrap(const FragTrap &other) {
name = other.name;
hit_points = other.hit_points;
energy_points = other.energy_points;
attack_damage = other.attack_damage;
std::cout << "FragTrap::FragTrap(const FragTrap &other)" << std::endl;
}
FragTrap::FragTrap(std::string name) {
std::cout << "FragTrap::FragTrap(" << name << ")" << std::endl;
hit_points = 100;

View file

@ -6,6 +6,7 @@
class FragTrap : public virtual ClapTrap {
public:
FragTrap();
FragTrap(const FragTrap &other);
FragTrap(std::string name);
~FragTrap();
FragTrap &operator=(const FragTrap &other);

View file

@ -8,6 +8,14 @@ ScavTrap::ScavTrap() {
attack_damage = 20;
}
ScavTrap::ScavTrap(const ScavTrap &other) {
name = other.name;
hit_points = other.hit_points;
energy_points = other.energy_points;
attack_damage = other.attack_damage;
std::cout << "ScavTrap::ScavTrap(const ScavTrap &other)" << std::endl;
}
ScavTrap::ScavTrap(std::string name) {
std::cout << "ScavTrap::ScavTrap(" << name << ")" << std::endl;
hit_points = 100;

View file

@ -6,6 +6,7 @@
class ScavTrap : public virtual ClapTrap {
public:
ScavTrap();
ScavTrap(const ScavTrap &other);
ScavTrap(std::string name);
~ScavTrap();
ScavTrap &operator=(const ScavTrap &other);