c++中的析构函数问题

[复制链接]
查看11 | 回复4 | 2009-1-20 19:06:41 | 显示全部楼层 |阅读模式
#include
using namespace std;
class A
{
public:
A()
{
cout<<"constructor"<<endl;
}
int display()
{
cout<<"display"<<endl;
return 1;
}
~A()
{
cout<<"distructor"<<endl;
}
};
A b;
int main()
{
b.display();
return 0;
}
为什么这个程序的析构函数没有显示

回复

使用道具 举报

千问 | 2009-1-20 19:06:41 | 显示全部楼层
这里因为你把析构函数交给系统调用的,实际上是在return 0之后的那个}调用的析构函数。这时候当然不会显示了。 尝试看看用指针,然后再调一下delete这个指针就能看到了。就像 kidpeng所写的那样。。。。。...
回复

使用道具 举报

千问 | 2009-1-20 19:06:41 | 显示全部楼层
#include using namespace std; class A { public: A() { cout<<"constructor"<<endl; } int display() { cout<<"display"<<endl; return 1; } ~A() ...
回复

使用道具 举报

千问 | 2009-1-20 19:06:41 | 显示全部楼层
你定义的类A的对象b是全局变量,在系统中有一块独立的存储空间,它的分配和回收由系统控制,所以程序结束了但你没看到析构的那一步。...
回复

使用道具 举报

千问 | 2009-1-20 19:06:41 | 显示全部楼层
析构时候,程序已经返回了,你没有看到结果...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行