假设我们有一个包含指向另一个对象的指针成员的类。如果我在析构函数中删除该指针,我会得到一个错误(我明白为什么)。
我的问题是:是否有可能在没有内存泄漏的情况下克服这个问题?
这是我在做什么的演示。
class A {
public:
~A() { cout<< "~A()" <<endl; }
};
class B {
A *pA;
public:
B(A* pA) {
this->pA = pA;
}
~B() {
delete pA;
cout<<"~B()"<<endl;
}
};
int main() {
A a;
{
B b2(new A()); //deletes A, deletes B, no memory leaks
}
{
B b(&a); //deletes A, error.
}
return 0;
}