Хорошо, у нас была задача создать конструктор для класса, который наследуется от другого, который также наследует от другого класса.Нашим решением для этого был следующий код:
AxeThrowerTroll:: AxeThrowerTroll(std::string name, char team, int health, unsigned int power, unsigned int armor, unsigned int numAxes)
: Troll(Monster(name, team, health, power), armor(armor)), numAxes(numAxes)
{
}
Но если мы хотим скомпилировать код, мы получаем следующую ошибку:
error: 'armor' cannot be used as a function
Определение тролля:
class Troll : public Monster
{
public:
unsigned int armor;
Troll(std::string, char, int, unsigned int, unsigned int);
virtual void attack(Monster*);
virtual void support(Monster*);
virtual std::string asString();
};
Монстр:
class Monster{
public:
std::string name ;
char team;
int health;
unsigned int power;
Monster(std::string, char, int, unsigned int);
virtual ~Monster();
virtual void attack(Monster*);
virtual void support(Monster*);
virtual std::string asString();
};
У кого-нибудь из вас есть предложение, как нам заставить это работать?