C++析构函数问题

来源:百度知道 编辑:UC知道 时间:2024/05/23 14:11:40
#include<iostream.h>
#include<stdlib.h>
class myclass
{
int a;
public:
myclass();
~myclass();
void show();
};
myclass::myclass()
{
cout<<"initializing an instance\n";
a=10;
}
myclass::~myclass()
{
cout<<"destruceting a instance"<<endl;
}
void myclass::show()
{
cout<<"a="<<a<<endl;
}
void main()
{
myclass obj;
obj.show();
system("pause");
}
为什么我这个函数运行后是
initializing an instance
a=10
请按任意键继续. . .

再按一个键,可以看到
destruceting a instance闪了一下。
不是应该输出???????
initializing an instance
a=10
destruceting a instance
请按任意键继续. . .

这样可以看到你想看的
void main()
{
{
myclass obj;
obj.show();
}
system("pause");
}

不是。。据我浅薄的c++,我不知道是什么意思,但是类撤销时才调用析构函数,也就是system("pause")之后。