¿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
No answers yet.
Inicia sesión para dejar una respuesta
Blogs
Docker y Rust: contenedorización de aplicaciones en Rust