码迷,mamicode.com
首页 > 其他好文 > 详细

!析构函数的调用

时间:2015-03-12 12:55:22      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:

if (...)

{

  class a;

}

在if语句结束后,class a的析构函数被调用。

很简单但是经常会疑惑或者犯错误,不知道析构函数什么时候调用。

 

而且如果class a中含有指针,然后给class b赋值后,经常会犯一个知名的错误。

class a{

int i;

int * pointer;

...

}

class b{

int i;

int * pointer;

}

 

 

if (...)

{

  class a = new a();

  b = a;

}

到这一步,b.i是有值的,而b.pointer是空,因为从if出来后,a的析构函数调用,将指针删除,而b的指针指向的也是a指针指向的地址,该地址已被释放。

 

!析构函数的调用

标签:

原文地址:http://www.cnblogs.com/qingsunny/p/4331890.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!