首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于析构函数,问,该怎么解决

2012-02-08 
关于析构函数,问#includeiostream.hclassaaa{public:~aaa(){cout deconstructor endl}voidd

关于析构函数,问
#include   <iostream.h>
class   aaa
{
public:
~aaa(){cout < < "deconstructor " < <endl;};
void   disp(){cout < < "disp " < <endl;};
};
void   main()
{
aaa   a;
a.~aaa();
a.disp();
}
我想问下,这段代码,为什么我已经执行了a.~aaa();这个析构函数后,它的其他方法怎么还能使用呢,按理说,资源已经释放了啊?请高手讲的清楚些,谢谢

[解决办法]
你这个对象是放在栈上的,只有在出了这个{}才会调用析构函数,你可以这样写。
void main()
{
{
aaa a;
a.disp();
}
}
要在debug模式下,如果release 可能会把中间的{}给优化掉。
或者
void main()
{
aaa *a=new aaa();
a-> disp();
delete a;
a=NULL;
}

热点排行