标题:关于goto语句和析构函数问题
只看楼主
Student2008
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2008-10-20
结帖率:100%
 问题点数:0 回复次数:1 
关于goto语句和析构函数问题
请问各位大虾 下面这个程序是不是表示用goto跳出一个循环,析构函数仍然被调用
#include<iostream>
using namespace std;

class Simple{
    int a;
public:
    Simple(int a);
    ~Simple();
};
Simple::~Simple(){
    cout<<"~freeing"<<endl;
    cout<<"a="<<a<<endl;
}
Simple::Simple(int b){
    cout<<"into me"<<endl;
    a=b;
    cout<<"a="<<a<<endl;
}
int main(){
    while(1){
        Simple s(4);
        goto a2;
    }
a2:cout<<endl;
}
搜索更多相关主题的帖子: goto 函数 语句 
2008-11-18 18:10
p1s
Rank: 4
等 级:贵宾
威 望:10
帖 子:454
专家分:3
注 册:2005-11-4
得分:0 
析构函数是对象消亡前自动调用的,如果是new动态分配的,那么就当它被delete的时候被调用。
如果是局部对象,那么就在函数调用结束后(或编译器判定该对象不再使用后)调用析构函数。
2008-11-18 18:32



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-245018-1-1.html




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

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