fix(ex03): never construct more than one ClapTrap when constructing DiamondTrap
This commit is contained in:
parent
812791dc77
commit
a843186f5e
5 changed files with 33 additions and 18 deletions
|
|
@ -1,12 +1,10 @@
|
|||
#include "DiamondTrap.hpp"
|
||||
#include <iostream>
|
||||
|
||||
DiamondTrap::DiamondTrap() : FragTrap(), ScavTrap() {
|
||||
const FragTrap fragtrap = FragTrap();
|
||||
|
||||
hit_points = fragtrap.get_hit_points();
|
||||
energy_points = ScavTrap::energy_points;
|
||||
attack_damage = fragtrap.get_attack_damage();
|
||||
DiamondTrap::DiamondTrap() {
|
||||
hit_points = FragTrap::default_hit_points;
|
||||
energy_points = ScavTrap::default_energy_points;
|
||||
attack_damage = FragTrap::default_attack_damage;
|
||||
|
||||
ClapTrap::name = name + "_clap_name";
|
||||
std::cout << "DiamondTrap::DiamondTrap()" << std::endl;
|
||||
|
|
@ -17,15 +15,14 @@ DiamondTrap::DiamondTrap(const DiamondTrap &other) {
|
|||
hit_points = other.hit_points;
|
||||
energy_points = other.energy_points;
|
||||
attack_damage = other.attack_damage;
|
||||
std::cout << "DiamondTrap::DiamondTrap(const DiamondTrap &other)" << std::endl;
|
||||
std::cout << "DiamondTrap::DiamondTrap(const DiamondTrap &other)"
|
||||
<< std::endl;
|
||||
}
|
||||
|
||||
DiamondTrap::DiamondTrap(std::string name) : name(name) {
|
||||
const FragTrap fragtrap = FragTrap(name);
|
||||
|
||||
hit_points = fragtrap.get_hit_points();
|
||||
energy_points = ScavTrap::energy_points;
|
||||
attack_damage = fragtrap.get_attack_damage();
|
||||
hit_points = FragTrap::default_hit_points;
|
||||
energy_points = ScavTrap::default_energy_points;
|
||||
attack_damage = FragTrap::default_attack_damage;
|
||||
|
||||
ClapTrap::name = name + "_clap_name";
|
||||
std::cout << "DiamondTrap::DiamondTrap(" << name << ")" << std::endl;
|
||||
|
|
|
|||
|
|
@ -1,11 +1,15 @@
|
|||
#include "FragTrap.hpp"
|
||||
#include <iostream>
|
||||
|
||||
const unsigned int FragTrap::default_hit_points(100);
|
||||
const unsigned int FragTrap::default_energy_points(100);
|
||||
const unsigned int FragTrap::default_attack_damage(30);
|
||||
|
||||
FragTrap::FragTrap() {
|
||||
std::cout << "FragTrap::FragTrap()" << std::endl;
|
||||
hit_points = 100;
|
||||
energy_points = 100;
|
||||
attack_damage = 30;
|
||||
hit_points = FragTrap::default_hit_points;
|
||||
energy_points = FragTrap::default_energy_points;
|
||||
attack_damage = FragTrap::default_attack_damage;
|
||||
}
|
||||
|
||||
FragTrap::FragTrap(const FragTrap &other) {
|
||||
|
|
|
|||
|
|
@ -12,6 +12,11 @@ public:
|
|||
FragTrap &operator=(const FragTrap &other);
|
||||
|
||||
void highFivesGuys();
|
||||
|
||||
protected:
|
||||
static const unsigned int default_hit_points;
|
||||
static const unsigned int default_energy_points;
|
||||
static const unsigned int default_attack_damage;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,11 +1,15 @@
|
|||
#include "ScavTrap.hpp"
|
||||
#include <iostream>
|
||||
|
||||
const unsigned int ScavTrap::default_hit_points(100);
|
||||
const unsigned int ScavTrap::default_energy_points(50);
|
||||
const unsigned int ScavTrap::default_attack_damage(20);
|
||||
|
||||
ScavTrap::ScavTrap() {
|
||||
std::cout << "ScavTrap::ScavTrap()" << std::endl;
|
||||
hit_points = 100;
|
||||
energy_points = 50;
|
||||
attack_damage = 20;
|
||||
hit_points = ScavTrap::default_hit_points;
|
||||
energy_points = ScavTrap::default_energy_points;
|
||||
attack_damage = ScavTrap::default_attack_damage;
|
||||
}
|
||||
|
||||
ScavTrap::ScavTrap(const ScavTrap &other) {
|
||||
|
|
|
|||
|
|
@ -12,6 +12,11 @@ public:
|
|||
ScavTrap &operator=(const ScavTrap &other);
|
||||
|
||||
void guardGate();
|
||||
|
||||
protected:
|
||||
static const unsigned int default_hit_points;
|
||||
static const unsigned int default_energy_points;
|
||||
static const unsigned int default_attack_damage;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue