注册 登录
编程论坛 C++教室

关于goto语句和析构函数问题

Student2008 发布于 2008-11-18 18:10, 1072 次点击
请问各位大虾 下面这个程序是不是表示用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;
}
1 回复
#2
p1s2008-11-18 18:32
析构函数是对象消亡前自动调用的,如果是new动态分配的,那么就当它被delete的时候被调用。
如果是局部对象,那么就在函数调用结束后(或编译器判定该对象不再使用后)调用析构函数。
1