Wie ruft man eine Methode der Elternklasse aus einer überschriebenen Methode in C++ auf?
Hallo! Ich lerne C++ und komme mit der Vererbung nicht klar. Ich habe eine Basisklasse `Animal` mit einer virtuellen Methode `Speak()`, die "Some generic animal sound" ausgibt. Ich erstelle eine abgeleitete Klasse `Dog`, die diese Methode überschreibt, um "Woof!" auszugeben.
Das Problem ist, dass ich in der Methode `Speak()` der Klasse `Dog` zuerst den Code der Elternklasse `Animal::Speak()` ausführen und dann meine eigene spezifische Ausgabe für den Hund hinzufügen muss. Ich versuche, sie direkt aufzurufen, aber es klappt nicht.
Hier ist mein 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 {
// Hier möchte ich zuerst Animal::Speak() aufrufen
Speak(); // Ruft sich selbst auf — endlose Rekursion!
cout << "Woof!" << endl;
}
};
int main() {
Dog myDog;
myDog.Speak(); // Erwarte