我想理解析构函数。我有以下问题。在下面的代码片段中,为什么对象b2超出了Destructor的范围?析构函数内的对象范围
class D
{
B *b1;
public:
D()
{
b1 = new B;
B *b2=new B;
cout<<"D's Constructor Invoked"<<endl;
//delete b2;
}
~D()
{
delete b1;
delete b2; // error : undeclared identifier
cout<<"D's Destructor Invoked"<<endl;
}
};
B只是一个简单的类。
谢谢
所以构造没有正常功能的不同在这方面。我认为Destructor应该知道构造函数的变量,因为它们在类中绑定 –