# include"iostream"
using namespace std;
//类A是抽象类
class A {
public:
virtual void action() = 0;
};
//类B必须重写A类的纯虚函数,否则也不能被实例化
class B :public A {
public:
//这个属于函数重载,而不是函数重写,重载就是函数名相同,参数不同,有参和无参也算在内
/*virtual void action(int a) {
a = 5;
cout << "重载了" << endl;
cout << a << endl;
}*/
//函数重写,必须和原函数一样,只是大括号里面的内容不同,或者没内容也可以,只要实现了就行
//派生类中的重写中可以省略virtual关键字
virtual void action() {
int a = 5;
cout << "重写了" << endl;
cout << a << endl;
}
};
int main() {
A *b = new B;
b->action();
system("pause");
return 0;
}
C++中纯虚函数以及函数重载和函数重写的区别
于 2022-09-02 23:18:56 首次发布