当前位置: 首页 > news >正文

网站阵地建设管理/免费建一级域名网站

网站阵地建设管理,免费建一级域名网站,天津建站管理系统信息,软件开发公司可靠么析构函数和构造函数的功能恰恰相反,也就是说,析构函数是完成对分配内存资源的回收!下面我们分两种情况来讨论: (1)非显式的调用析构函数(2)显式的调用析构函数 一.非显式的调用析构函…

析构函数和构造函数的功能恰恰相反,也就是说,析构函数是完成对分配内存资源的回收!下面我们分两种情况来讨论:

(1)非显式的调用析构函数(2)显式的调用析构函数

 

一.非显式的调用析构函数

(1)当类中不含有在堆中分配的内存时,系统在对象消失后会自动的调用该对象的析构函数

(2)当类中含有new/malloc等在堆中分类的内存的时候,我们必须用delete/free释放掉分配的内存,析构函数才会被调用,如果没有delete,那么就会造成内存泄漏。举例说明:

//test C++destructor
#include <iostream>
using namespace std;
class A
{
public:A (){cout<<"constructor implement"<<endl;}~A(){cout<<"destructor implement"<<endl;}
private:int m_a;
};
void main()
{A *a1 = new A();  //在堆中分配内存A a2;//在栈上分配内存delete a1; 
}

 执行结果:

二.显式的调用析构函数

许多类不需要显式析构函数,尤其是具有构造函数的类不一定需要定义自己的析构函数,仅仅在有些工作需要析构函数完成时,才需要析构函数。在这里,我们先不讲很多,具体的可以参见博客:

http://www.cppblog.com/lf426/archive/2008/04/12/46909.html

http://www.cnblogs.com/fangyukuan/archive/2010/08/28/1811119.html

 

下面再说一下在多重继承中基类中为什么要把析构函数加上virtual关键字。看下面的代码:

//test C++destructor
#include <iostream>
using namespace std;
class A
{
public:A (){cout<<"A constructor implement"<<endl;pa = new int;}~A(){cout<<"A destructor implement"<<endl;}
private:int m_a;int *pa;
};class B: public A
{
public:B(){cout<<"B constructor"<<endl;pb = new int;}~B(){cout<<"B destructor"<<endl;}
private:int m_b;int *pb;};
void main()
{
// 	A *a1 = new A();
// 	A a2;
// 	delete a1;A *b = new B;delete b;}

 运行结果为:

可以发现,只有基类的析构函数被调用,派生类没有被调用,这势必发生内存泄漏。因此需要在基类的析构函数前面加上virtual,这样的目的是发生动态绑定,当delete b时,首先能调用派生类的析构函数。

转载于:https://www.cnblogs.com/CBDoctor/archive/2012/10/10/2717673.html

http://www.jmfq.cn/news/4769173.html

相关文章:

  • 免费网站奖励自己的软件/竞价推广和信息流推广
  • 基督网站讲道新年做 新 造人/应用商店下载
  • 建站行业获客/考研比较厉害的培训机构
  • 介绍一学一做视频网站/营销管理制度范本
  • 网站做好怎么开始做推广/信息流广告优化师培训
  • 边坝网站制作/网络营销岗位有哪些
  • 工程建设管理条例/企业网站优化报告
  • 网站套餐到期什么意思/长春seo排名外包
  • 驻马店网站建设电话/手机百度助手
  • 网站制作费用低/太原百度推广开户
  • 为公益组织做网站/网络视频营销平台
  • 网站设计示例/南昌seo推广
  • 做兼职的网站有哪些工作/微博指数
  • 某公司网站源码/西安百度seo推广
  • 网站建设的需求和目的/今天特大军事新闻
  • 做视频网站注意什么问题/温州网站快速排名
  • 优秀的网站建设推荐/外贸接单十大网站
  • 暖色调网站/windows优化大师怎么使用
  • 做网站主页效果图/今天最新的新闻
  • 科技网站制作案例/百度网站怎么申请注册
  • app下载平台哪个好/上海优化营商环境
  • 海曙区建设局网站/如何开发一个软件平台
  • 网站建设及网络推广/seo泛目录培训
  • wordpress 耗内存/厦门seo排名
  • 做网站用什么格式做好/全网营销系统是干什么的
  • 30岁转行做网站设计/学网络营销好就业吗
  • b2b网站代表及网站网址是什么/网站优化策略分析
  • 咸阳市住房和城乡建设规划局网站/搜索引擎的工作原理是什么
  • 前端asp网站开发/数据分析软件
  • 婚纱设计网站首页/360营销推广