C++ 析构函数
来源:互联网 发布:苹果手机4g网络显示lte 编辑:程序博客网 时间:2024/05/17 23:12
我们在使用C++析构函数一定要加上virtual 关键字,因为在继承的情况下,可以通过基指针直接delele释放类的资源,
否则直接delete基类指针会造成内存泄露,或者自己手动加上类型指针转换后再释放!
class A{A(){}~A(){}}class B:public A{B(){}~B(){}}A* pA=new B();delete pA;//不会调用B的析构函数,只会调用A的析构函数导致内存泄露//但是可以采用如下方式防止内存泄露B* pB=dynamic_cast<A*>(pA);//安全的做法是,动态指针转换if(NULL != pB){delete pB;}//加入virtual 情况就不一样了class A{A(){}virtual ~A(){}}class B:public A{B(){}virtual ~B(){}}A* pA=new B();delete pA;//不会内存泄露
阅读全文
0 0
- 析构函数(C#)
- C++--------析构函数
- c++::析构函数
- C++-析构函数
- 构造函数和析构函数【c++】
- c++-构造函数与析构函数
- C++-构造函数,析构函数
- [c++]构造函数和析构函数
- C++--构造函数与析构函数
- 【C#】构造函数和析构函数
- 【c#】—架构函数&&析构函数
- 【C++】构造函数和析构函数
- 【C++】构造函数和析构函数
- C++(构造函数&&析构函数)
- 【C#】构造函数&析构函数
- 【c++】构造函数与析构函数
- 【C++】类构造函数 & 析构函数
- C++:构造函数和析构函数
- zookeeper安装和使用 windows环境
- 微信 jssdk 看着文档简单总结
- zookeeper启动成功,显示not running问题
- 谈一谈CSS的选择器和工作原理
- Angular4 中常用的指令
- C++ 析构函数
- java下载压缩包文件zip
- 数据结构—二叉搜索数
- Android Webview知识点和遇到过的坑全总结
- Windows驱动程序的加载
- c/c++的改错练习二
- sqoop数据导入导出应用案例
- INFOCOM
- redis3.0配置文件redis.conf详解