读书人

析构函数内容不能输出?解决办法

发布时间: 2013-02-15 15:46:56 作者: rapoo

析构函数内容不能输出?
本帖最后由 swf_moses 于 2013-01-29 17:37:33 编辑 #include <iostream>
using namespace std;

class Animal
{
public:
Animal()
{
cout<<"Animal123"<<endl;
}
~Animal()
{
cout<<"Animal321"<<endl;
}
};
class Fish : public Animal
{
public:
Fish()
{
cout<<"Fish123"<<endl;
}
~Fish()
{
cout<<"Fish321"<<endl;
}
};

void main()
{
Fish fh;
getchar();
}

最后我的输出为:
Animal123
Fish123
为什么析构函数的内容没办法输出啊?

[解决办法]
局部变量的析构函数是在该变量离开其作用域的时候被调用的,getchar被调用的时候还没有离开fh的作用域,所以其西沟函数不会被调用。
[解决办法]
void main()
{
Fish fh;
getchar();
}
///////////
改成:
void main()
{
{
Fish fh;
}

getchar();
}

读书人网 >C++

热点推荐