Avatar ·

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