关于虚函数--析构函数是虚函数
来源:互联网 发布:数据库 使用表 编辑:程序博客网 时间:2024/05/19 10:08
先看下面的例子:
#include <iostream>using namespace std;// A是父类class A{public:A(){cout<<"A()"<<endl;}virtual ~A(){cout<<"~A()"<<endl;}};// B是A的子类class B : public A{public:B(){cout<<"B()"<<endl;}~B(){cout<<"~B()"<<endl;}};void main(){A *a = new B;delete a;}
执行结果是:
如果去掉A类析构函数不是虚函数,即析构函数前没有virtual关键字,则执行结果如下:
从上面的例子中可以看出,如果父类A的析构函数不是虚函数的话,子类B的析构函数就不会被执行,那么在
A *a = new B;时申请的资源就不会被释放,这显然不是我们所期望的,所以,对于例子这样情况,析构函数应该是虚函数。
- 关于虚函数--析构函数是虚函数
- 析构函数是虚函数
- 析构函数为啥是虚函数
- 为什么析构函数是虚函数
- 析构函数为什么是虚函数
- 为什么析构函数是虚函数
- 析构函数是虚函数时
- 构造函数,析构函数可不可以是虚函数?
- 构造函数和析构函数能否是虚函数
- 析构函数是虚函数的优点(转)
- 基类的析构函数为什么是虚函数?
- 基类的析构函数为什么是虚函数
- 为什么析构函数最好是虚函数?
- 为什么基类的析构函数是虚函数
- 析构函数是虚函数的优点是什么
- 为什么基类的析构函数是虚函数?
- 为什么基类的析构函数是虚函数?
- 析构函数为什么一般是虚函数
- 一淘网系统架构
- 自己创建个1000层的文件夹,xp竟然删不掉,最后只能自己写个程序删除
- 浅谈C/C++中的顺序点和副作用
- 可能要忙两个月了
- integrate stlport with visual studio 2010
- 关于虚函数--析构函数是虚函数
- Java连接Mysql彩票实例
- Win7 启动 0xc0000034错误 - 解决
- http日志分析工具awstat安装详解
- 编程常见英文缩写
- vmware使用NAT方式上网设置
- declare-styleable:自定义控件的属性
- win7下vm中linux網絡共享設置
- 熟悉ArrayList