我想释放该类中定义的对象的内存
class A
{
A() {} //Constructor
//Other Definitions go here
}
Class B
{
B(){} //Constructor
~B()
{
//what should I do to release the memory location of A's object
//Shall I call default destructor of A
}
private:
A objA;
}
最佳答案
您无需执行任何操作即可释放类objA
中B
占用的内存。释放B
对象的内存时,内存将自动释放。
在不破坏包含objA
的B
对象的情况下,您无法做任何事情来释放类B
中的objA
占用的内存。
您可以显式调用objA
的析构函数,但这不会释放任何内存。之后访问objA
只会导致未定义的行为。并且最有可能在之后访问objA
,因为C ++运行时销毁B
对象时,它将调用objA
的析构函数。