Como chamar o método da classe pai a partir de um método sobrescrito em C++?
Olá! Estou estudando C++ e não consigo entender herança. Eu tenho uma classe base `Animal` com um método virtual `Speak()`, que imprime "Some generic animal sound". Eu crio uma classe derivada `Dog`, que sobrescreve este método para imprimir "Woof!".
O problema é que no método `Speak()` da classe `Dog`, eu preciso primeiro executar o código da classe pai `Animal::Speak()`, e depois adicionar minha saída específica para o cachorro. Eu estou tentando chamá-lo diretamente, mas não consigo.
Aqui está meu código:
```cpp
#include
using namespace std;
class Animal {
public:
virtual void Speak() {
cout << "Some generic animal sound" << endl;
}
};
class Dog : public Animal {
public:
void Speak() override {
// Aqui eu quero primeiro chamar Animal::Speak()
Speak(); // Chama a si mesmo — recursão infinita!
cout << "Woof!" << endl;
}
};
int main() {
Dog myDog;
myDog.Speak(); // Espero
No answers yet.
Faça login para deixar uma resposta