Я застрял в проблеме, связанной с полиморфизмом. Мой код постоянно говорит мне, что для моего класса нет конструктора по умолчанию, в этом случае я назвал существо, хотя я и создал экземпляр конструктора, который принимает строку в классе существа. У меня такое чувство, что я скучаю по чему-то очень маленькому здесь, и надеялся, что кто-то может мне помочь с этим. Код выглядит следующим образом.
class Creature
{
public:
Creature(string);
virtual void DoAction() = 0;
virtual void DrawOnScreen() = 0;
protected:
string CreatureName;
};
Creature::Creature(string pname)
{
this->CreatureName = pname;
};
class Monster : public Creature
{
Monster(string CreatureName);
void DoAction();
protected:
string CreatureName;
};
Monster::Monster(string pname)
{
this->CreatureName = pname;
};
class Player : public Creature
{
Player(string CreatureName);
void DoAction();
protected:
string CreatureName;
};
Player::Player(string pname)
{
this->CreatureName = pname;
}
class WildPig : public Creature
{
WildPig(string CreatureName);
void DoAction();
protected:
string CreatureName;
};
WildPig::WildPig(string pname)
{
this->CreatureName = pname;
}
class Dragon : public Creature
{
Dragon(string CreatureName);
void DoAction();
protected:
string CreatureName;
};
Dragon::Dragon(string pname)
{
this->CreatureName = pname;
}
Я включил в этот фрагмент только классы, чтобы он был кратким и сосредоточился на том, где, по моему мнению, лежит проблема. Любая помощь будет принята с благодарностью.