| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1343 人关注过本帖
标题:C++一个析构函数的疑惑?
取消只看楼主 加入收藏
hcs_xiaohan
Rank: 2
等 级:论坛游民
帖 子:40
专家分:23
注 册:2016-7-4
结帖率:91.67%
收藏
已结贴  问题点数:13 回复次数:0 
C++一个析构函数的疑惑?
源代码如下:

#include <iostream>

using namespace std;

class Demo {
    int id;
public:
    Demo(int i)
    {
        id = i;
        cout << "id = " << id << " Constructed" << endl;
    }
    ~Demo()
    {
        cout << "id = " << id << " Destructed" << endl;
    }
};

Demo d1(1);
void Func() {
    static Demo d2(2);
    Demo d3(3);
    cout << "Func" << endl;
}
int main() {
    Demo d4(4);
    d4 = 6;
    cout << "main" << endl;
    { Demo d5(5); }
    Func();
    cout << "main ends" << endl;
    return 0;
}


输出如下:


id=1 Constructed
id=4 Constructed
id=6 Constructed
id=6 Destructed
main
id=5 Constructed
id=5 Destructed
id=2 Constructed
id=3 Constructed
Func
id=3 Destructed
main ends
id=6 Destructed
id=2 Destructed
id=1 Destructed

我不明白为什么出现了三次 id=6,请各位指导一下。
搜索更多相关主题的帖子: C++ 析构函数 int cout main 
2017-06-28 23:43
快速回复:C++一个析构函数的疑惑?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014881 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved