C++ 技术中心
::
首页
::
联系
:: ::
管理
160 Posts :: 0 Stories :: 87 Comments :: 0 Trackbacks
公告
郑重声明:本BLOG所发表的原创文章,作者保留一切权利。必须经过作者本人同意后方可转载,并注名作者(天空)和出处(CppBlog.com)。作者Email:coder@luckcoder.com
留言簿
(27)
给我留言
查看公开留言
查看私人留言
随笔分类
C++ STL(2)
C++ 基础(31)
Delphi(2)
Linux 编程(29)
Linux 操作(22)
MSSQL(1)
MYSQL(21)
Oracle
python编程(1)
UML(3)
Windows 编程(10)
Windows 网络编程(6)
工具(1)
其他编程(11)
其他生活类
三方库(5)
生活(7)
五线谱(1)
游戏开发(14)
随笔档案
2020年5月 (2)
2017年12月 (1)
2017年11月 (1)
2017年9月 (1)
2017年8月 (1)
2017年7月 (1)
2017年6月 (3)
2017年4月 (2)
2017年3月 (3)
2016年6月 (1)
2016年1月 (1)
2015年12月 (2)
2015年5月 (1)
2015年2月 (1)
2014年12月 (2)
2014年11月 (4)
2014年9月 (2)
2014年8月 (1)
2014年7月 (1)
2014年6月 (3)
2014年5月 (1)
2014年4月 (1)
2014年3月 (1)
2013年12月 (5)
2013年11月 (2)
2013年10月 (1)
2013年9月 (9)
2013年8月 (6)
2013年7月 (11)
2013年6月 (5)
2013年4月 (8)
2013年3月 (4)
2013年1月 (3)
2012年12月 (5)
2012年11月 (2)
2012年10月 (5)
2012年9月 (7)
2012年8月 (7)
2012年7月 (1)
2012年6月 (1)
2012年5月 (1)
2012年3月 (11)
2012年2月 (1)
2011年12月 (1)
2011年11月 (1)
2011年10月 (1)
2011年9月 (1)
2011年8月 (1)
2011年7月 (1)
2011年6月 (2)
2011年4月 (11)
2011年3月 (9)
搜索
最新随笔
1. origin游戏服务器引擎介绍
2. golang游戏服务器引擎
3. 套接字read/write返回值
4. 关于linux信号总结
5. A*算法实现
6. vc内存地址填充
7. c++函数throw()
8. EA类的关系
9. 游戏服务器相关讨论(转)
10. C/C++中volatile与 mutable,explicit 关键字详解
最新评论
1. re: 10个C++11特性
std::move() 解除引用,提供效率,所谓的右值处理,一开始也没看明白,后来觉得有这个挺好
--放屁阿狗
2. re: A*算法实现
评论内容较长,点击标题查看
--放屁阿狗
3. re: 内存泄露监控报告
用 BoundsChecker 吧,原理大家都懂但是自己做没必要(盗版滴)
--万连文
4. re: vc内存地址填充
你看的不全啊,0xcc表示是指令码:int 3,也就是软中断,
--冬瓜
5. re: 10个C++11特性
评论内容较长,点击标题查看
--lz
评论排行榜
1. 一个封装好的线程类(7)
2. 格式化字符串(6)
3. 字符串格式化防止数组越界(6)
4. 关于warning C4819(5)
5. CodeLite 出现中文乱码问题(4)
C++ 虚析构函数的问题
一.虚析构函数说明
一般来说,如果有被子类继承的类,尽可能的加上关键字virtual,特别是以下情况,可能没有调用子类的析
构造成内存泄露.
二.代码示例:
#include
<
iostream
>
#include
<
conio.h
>
using
namespace
std;
class
CBase
{
public
:
//
注意有加virtual与不加virtual运行情况
virtual
~
CBase()
{
cout
<<
"
CBase destructor!
"
<<
endl;
}
}
;
class
CChild:
public
CBase
{
public
:
~
CChild()
{
cout
<<
"
CChild destructor!
"
<<
endl;
}
}
;
int
main(
int
argc,
char
*
argv[])
{
/**/
/*
以下打印结果是
CChild destructor!
CBase destructor!
*/
CChild
*
pchild
=
new
CChild();
delete pchild;
/**/
/*
1.以下代码有加virtual运行结果是:
CChild destructor!
CBase destructor!
2.去掉virtual运行结果如下:
CBase destructor!
可以看到,没有调用CChild的析构函数
*/
CBase
*
pBase
=
new
CChild();
delete pBase;
_getch();
return
0
;
}
posted on 2011-03-11 15:10
C++技术中心
阅读(1516)
评论(0)
编辑
收藏
引用
所属分类:
C++ 基础
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
golang游戏服务器引擎
内存泄露监控报告
vc内存地址填充
c++函数throw()
C/C++中volatile与 mutable,explicit 关键字详解
使用enable_shared_from_this(转)
c++ 11std::bind std::function 高级用法
10个C++11特性
C++中的explicit关键字
c++基础要点(9-15点)
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
Copyright @ C++技术中心
Powered by:
.Text
and
ASP.NET
Theme by:
.NET Monster