c++派生类 重写的函数如何调用基类原函数
时间: 2023-10-13 15:06:16 浏览: 95
在派生类的构造函数中调用基类的构造函数
在C++中,如果我们在派生类中重写了基类的虚函数,我们可以使用作用域解析运算符(::)来调用基类中的原函数。
例如,假设我们有一个基类Animal和一个派生类Dog,Animal类有一个名为speak()的虚函数,我们想在Dog类中重写它并调用基类中的原函数。我们可以这样写:
```c++
class Animal {
public:
virtual void speak() {
cout << "Animal speaking" << endl;
}
};
class Dog : public Animal {
public:
void speak() override { // 使用override关键字重写基类中的虚函数
cout << "Dog barking" << endl;
Animal::speak(); // 调用基类中的原函数
}
};
```
在上面的代码中,我们在Dog类中重写了基类中的speak()函数,并使用作用域解析运算符(::)来调用基类中的原函数。这将在调用Dog类中的speak()函数时,先输出"Dog barking",然后再调用基类中的speak()函数输出"Animal speaking"。这样我们就可以在派生类中调用基类中的原函数。
阅读全文