首页 新闻 会员 周边 捐助

什么时候需要手动调用析构函数?

0
[已解决问题] 解决于 2014-04-07 14:47

想问一下,在C++中,什么情况下我们需要手动调用类的析构函数。就是说,如果不手动调用析构函数,就可能会造成资源泄露,求大神解答

俺家有地_的主页 俺家有地_ | 菜鸟二级 | 园豆:202
提问于:2014-04-07 00:02
< >
分享
最佳答案
0

(1) 如果在创建对象的时候采用动态申请(new),那么需要显式的调用类的析构函数。

(1)当类中有非基本数据类型的成员变量时,需要手动的调用析构函数。 例如在A类的成员变量中出现了B类的对象,需要显式的销毁B的对象。

奖励园豆:5
Double_win | 菜鸟二级 |园豆:244 | 2014-04-07 12:51

class A

{

  string str;

}

如果是这样,要手动调用string的析构函数么?

俺家有地_ | 园豆:202 (菜鸟二级) | 2014-04-07 14:29

@俺家有地_: 不用

Double_win | 园豆:244 (菜鸟二级) | 2014-04-07 14:41

@Double_win: 那你的意思是,如果A类里嵌套了一个B类,然后定义一个A类的对象,在程序结束的时候需要手动调用B类的析构函数么

俺家有地_ | 园豆:202 (菜鸟二级) | 2014-04-07 14:42

@俺家有地_: 在A类的析构函数中需要手动的把B的对象delete掉,调用B的析构函数

Double_win | 园豆:244 (菜鸟二级) | 2014-04-07 14:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册