Я не могу понять, как вызвать метод базового класса из метода производного класса, но одновременно применяю этот вызов метода к объекту, переданному в качестве аргумента.
Что я имею в виду, это:
class Animal
{
virtual void eat(Animal& to_be_eaten) = 0;
};
class Carnivores: public Animal
{
virtual void eat(Animal& to_be_eaten) { /*implementation here*/}
};
class Wolf : public Carnivores
{
virtual void eat(Animal& to_be_eaten)
{ /*call eat method(of Base class) of Base to_be_eaten here*/ }
}
Я думал о чем-то вроде этого
dynamic_cast<Carnivores&>(to_be_eaten).eat(*this) //and got a segmentation fault
Есть ли способ сделать это?
Спасибо!
Новое редактирование ::
Обновлен код