C++中的virtual关键字【代码示例】
2019-10-21 本文已影响0人
锋之律
#include <iostream>
using namespace std;
// 基类A
class A{
public:
virtual ~A(){}; // 定义基类的虚析构函数,若不定义该函数,则会出现警告信息
virtual void display(){ cout<<"A"<<endl; } // 虚函数display()
};
// 派生类B
class B : public A{
public:
void display(){ cout<<"B"<<endl; }
};
void doDisplay(A *p) // 定义基类指针
{
p->display(); // 当函数参数为new B()时,定义的基类指针指向派生类,此时需要定义基类虚析构函数
delete p;
}
int main()
{
doDisplay(new B());
return 0;
}