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

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

2013-02-15 
析构函数内容不能输出?本帖最后由 swf_moses 于 2013-01-29 17:37:33 编辑#include iostreamusing names

析构函数内容不能输出?
本帖最后由 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();
}

热点排行