何时需要虚函数(虚析构造函数的好处)
2012-07-31 12:24
337 查看
1.当能通过基类指针撤销派生类对象时;
2,。带有多态性质的基类,如果类中有任何虚函数,那就应该将该类析构函数定义为虚函数。
3.如果类的设计不是作为基类来使用,或不具备多态性,则不用声明为虚函数
撤销派生类的无名对象
2,。带有多态性质的基类,如果类中有任何虚函数,那就应该将该类析构函数定义为虚函数。
3.如果类的设计不是作为基类来使用,或不具备多态性,则不用声明为虚函数
撤销派生类的无名对象
#include<iostream> using namespace std; class Base{ public: virtual ~Base() { cout<<"Base 虚析构造函数"<<endl; } }; class Deriverd:public Base{ public: ~Deriverd() { cout<<"Deriverd虚析构造函数"<<endl; } }; int main() { Base *p; p=new Deriverd; delete p;//撤销Deriverd派生类的无名对象 return 0; }
相关文章推荐
- 创建一个CPoint类,代表平面直角坐标系中的点,创建构造函数和运算符重载函数, 运算符重载为类重载(非友元重载),可以实现计算两个点之间的距离。可以根据需要 加入自己的成员变量或成员函数
- C++中构造函数为什么不能为虚函数
- 【C++】构造函数不能是虚函数
- 什么是预编译?何时需要预编译?
- 内联函数,构造函数,静态函数都不能是虚函数
- 什么是预编译,何时需要预编译? 多个文件链接成一个文件
- 构造函数和析构函数能不能是虚函数
- 构造函数、析构函数调用虚函数
- 构造函数和析构函数能否声明为虚函数,能否在里面调用虚函数
- 构造函数为什么不能是虚函数
- 为什么需要消息队列,及使用消息队列的好处?
- 线程同步:何时互斥锁不够,还需要条件变量?
- 指针学习3----何时需要自行定义析构函数
- 为什么构造函数不可以声明为虚函数,而析构函数可以
- 为什么构造函数不能为虚函数(转)
- 构造函数和析构函数能否声明为虚函数?
- 为什么构造函数不能声明为虚函数,析构函数可以
- 何时调用构造函数,复制构造函数,析构函数
- 为什么构造函数不能声明为虚函数,析构函数可以
- 构造函数和析构函数能否声明为虚函数?