Comment appeler une méthode de la classe parente depuis une méthode surchargée en C++ ?
Bonjour ! J'apprends le C++ et je n'arrive pas à comprendre l'héritage. J'ai une classe de base `Animal` avec une méthode virtuelle `Speak()` qui affiche "Some generic animal sound". Je crée une classe dérivée `Dog` qui surcharge cette méthode pour afficher "Woof!".
Le problème est que dans la méthode `Speak()` de la classe `Dog`, je dois d'abord exécuter le code de la classe parente `Animal::Speak()`, puis ajouter ma propre sortie spécifique pour le chien. J'essaie de l'appeler directement, mais je n'y arrive pas.
Voici mon code :
```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 {
// Ici, je veux d'abord appeler Animal::Speak()
Speak(); // S'appelle lui-même — récursion infinie !
cout << "Woof!" << endl;
}
};
int main() {
Dog myDog;
myDog.Speak(); // J'attends