| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 383 人关注过本帖
标题:析构函数的实现问题,求指教
只看楼主 加入收藏
晴天一阵
Rank: 2
等 级:论坛游民
帖 子:40
专家分:24
注 册:2011-5-21
结帖率:91.67%
收藏
已结贴  问题点数:10 回复次数:2 
析构函数的实现问题,求指教
#include<iostream>
using namespace std;
int count=0;
class alpha
{
public:
    alpha()
图片附件: 游客没有浏览图片的权限,请 登录注册

    {
        count++;
        cout<<"\nNO.of object destroyde"<<count;
    }
    ~alpha()
    {
        cout<<"\nNO.of object destroyed"<<count;
    count--;
    }
};
int main()
{
    cout<<"\n\nENTER MAIN\n";
        alpha A1,A2,A3,A4;

    {
        cout<<"\n\nENTER BLOCK1\n";
        alpha A5;
    }
    {
        cout<<"\n\nENTER BLOCK2\n";
            alpha A6;
    }
    cout<<"\n\nRE-ENTER MAIN\n";
    return 0;
}
对象A1,A2,A3,A4生成后为什么不是当场销毁,而是等到A5,A6销毁后才销毁的。。。
2011-09-08 22:45
hoho568
Rank: 5Rank: 5
等 级:职业侠客
帖 子:101
专家分:378
注 册:2009-7-14
收藏
得分:5 
对象A1,A2,A3,A4是在你的函数main()里面声明的,它的作用域是整个函数,只有整个函数结束的时候才会销毁;
而A5,A6是在局部变量(对象),在{}出来之后就会销毁。
作用域的关系啊。。。怎么A1-A4怎么可能声明玩就销毁呢。。要是你后面用到咋办。。
2011-09-08 23:17
newenter
Rank: 2
等 级:论坛游民
帖 子:3
专家分:15
注 册:2010-8-12
收藏
得分:5 
{
    cout<<"\n\nENTER BLOCK1\n";
    alpha A5;
 }
{
    cout<<"\n\nENTER BLOCK2\n";
      alpha A6;
}
A5,A6他们的生存周期就是在两对大括号之间。所以会先析构
2011-09-09 15:36
快速回复:析构函数的实现问题,求指教
数据加载中...
 
   



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

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