Avatar ·

如何在C++中从重写的方法调用父类方法?

您好!我正在学习C++,但在继承方面遇到了问题。我有一个基类 `Animal`,其中包含一个虚方法 `Speak()`,它会输出 "Some generic animal sound"。我创建了一个派生类 `Dog`,它重写了这个方法,以输出 "Woof!"。 问题在于,在 `Dog` 类的 `Speak()` 方法中,我需要先执行父类 `Animal::Speak()` 中的代码,然后再添加狗特有的输出。我尝试直接调用它,但没有成功。 这是我的代码: ```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 { // 这里我想先调用 Animal::Speak() Speak(); // 调用自身——无限递归! cout << "Woof!" << endl; } }; int main() { Dog myDog; myDog.Speak(); // 期望输出:"Some generic animal sound