【发布时间】:2011-02-15 21:30:12
【问题描述】:
专家!!我知道这个问题是最糟糕的问题之一,但我仍然敢于敞开心扉,希望我能向所有人学习。
我在例行程序中尝试了一些示例,并做了一件可怕的事情,我从同一个类的析构函数中调用了类的构造函数。
我真的不知道在实际编程中是否需要这样做,我想不出我们真正需要在析构函数中调用函数/CTOR 的任何实时场景。通常,析构函数用于清理。
如果我的理解是正确的,为什么编译器不抱怨?这是因为它出于某些充分的理由而有效吗?如果有,它们是什么?
我尝试了 Sun Forte、g++ 和 VC++ 编译器,但没有人抱怨。\
编辑:我感谢大家的回答,我想我的观点没有说清楚,我知道结果,它会以递归方式结束,程序可能会崩溃,但问题实际上是关于 Destructor 允许创建一个对象。
using namespace std;
class test{
public:
test(){
cout<<"CTOR"<<endl;
}
~test() {cout<<"DTOR"<<endl;
test();
}};
【问题讨论】:
标签: c++ oop constructor g++ destructor