Files
42_INT_09_piscine_cpp/d03/jodufour/private/class/ClapTrap.hpp

60 lines
1.2 KiB
C++

#ifndef CLAPTRAP_HPP
# define CLAPTRAP_HPP
# include <iostream>
# 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