c++父类非虚函数,想在子类中实现新的功能
时间: 2024-02-17 19:02:15 浏览: 59
如果想要在子类中实现新的功能,建议使用虚函数来实现,而不是重新定义继承而来的非虚函数。虚函数可以在派生类中进行重写,从而实现新的功能,而不会影响到基类的实现。
具体实现方法如下:
1. 在父类中声明虚函数。
2. 在子类中重写虚函数,实现新的功能。
3. 在需要调用子类实现的地方,使用指向子类对象的指针或引用来调用虚函数。
示例代码如下:
```c++
#include <iostream>
using namespace std;
class Parent {
public:
void print() {
cout << "Parent::print()" << endl;
}
virtual void show() {
cout << "Parent::show()" << endl;
}
};
class Child : public Parent {
public:
void print() {
cout << "Child::print()" << endl;
}
void show() override {
cout << "Child::show()" << endl;
}
};
int main() {
Parent *p = new Child;
p->print(); // 调用父类的print函数
p->show(); // 调用子类的show函数
return 0;
}
```
输出结果为:
```
Parent::print()
Child::show()
```
可以看到,当使用指向子类对象的指针调用print函数时,调用的是父类的print函数,而使用同样的指针调用show函数时,调用的是子类的show函数。这就是虚函数的实现方式。
阅读全文