C++ 为什么要virtual析构函数
2024-08-23 13:13:31
class A
{
public:
A()
{
printf("A()\n");
}
virtual ~A()
{
printf("~A()\n");
}
}; class B
{
public:
B()
{
printf("B()\n");
}
~B()
{
printf("~B()\n");
}
}; class C:public A, public B //继承用“,”隔开每个类前面必须有public否则默认为private
{
public:
C()
{
printf("C()\n");
}
~C()
{
printf("~C()\n");
}
}; int _tmain(int argc, _TCHAR* argv[])
{
{
C c; //可以正确构造和析构
}
{
A *a = new C;
delete a;//有virtual会一次调用C,A,B的析构函数,正确执行
}
{
B *b = new C;
delete b;//没有virtual会直接调用B的析构,不会调用A,C的析构函数错误
}
getchar();
return ;
}
最新文章
- contentOffset,frame,bounds,contentSize,ContentInset
- MongoDb 2.4 beta新特性——全文索引
- 转: ImageMagick 命令行的图片处理工具(客户端与服务器均可用)
- Android开发之在子线程中使用Toast
- 常用的PHP正则表达式汇总
- 如何让Gridview在没有数据的时候显示表头(asp.net)
- 再谈CVE-2017-7047 Triple_Fetch和iOS 10.3.2沙盒逃逸
- A. 拼音魔法
- Netty 编解码技术 数据通信和心跳监控案例
- UE4 创建自己的角色
- Problem of Creating Topics in Kafka with Kerberos
- 常见26种NLP任务的练手项目
- jdk安装环境变量配置
- ubuntu下的烧录工具
- Spring源码分析(十五)获取单例
- python with妙用
- ubuntu16.04下ftp服务器的安装与配置
- Gulp插件autoprefixer的使用
- 剑指offer-第五章优化时间和空间效率(把数组排列成最小的数)
- nginx error_page
热门文章
- 【Codeforces Round #422 (Div. 2) D】My pretty girl Noora
- PatentTips - Posting interrupts to virtual processors
- 网页载入进度条中的javascript
- JavaScript语言基础3
- HTML <;button>; 标签
- linux大于2T的磁盘使用GPT分区的方法分享
- 2.CString转换到char*
- 暑假集训-WHUST 2015 Summer Contest #0.2
- 开启mysql远程服务
- unzip---解压缩“.zip”压缩包。