当前位置: 代码迷 >> C++ >> 析构函数内容不能输出?解决办法
  详细解决方案

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

热度:911   发布时间:2013-02-26 00:00:00.0
析构函数内容不能输出?
本帖最后由 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();
}
  相关解决方案