Avatar ·

¿Cómo llamar al método de la clase base desde un método sobrescrito en C++?

¡Hola! Estoy aprendiendo C++ y no puedo entender la herencia. Tengo una clase base `Animal` con un método virtual `Speak()` que imprime "Some generic animal sound". Creo una clase derivada `Dog` que sobrescribe este método para imprimir "Woof!". El problema es que en el método `Speak()` de la clase `Dog` necesito ejecutar primero el código de la clase base `Animal::Speak()` y luego agregar mi salida específica para el perro. Intento llamarlo directamente, pero no funciona. Aquí está mi 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 { // Aquí quiero llamar primero a Animal::Speak() Speak(); // ¡Se llama a sí mismo — recursión infinita! cout << "Woof!" << endl; } }; int main() { Dog myDog; myDog.Speak(); // Espero