我想释放该类中定义的对象的内存

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;
}

最佳答案

您无需执行任何操作即可释放类objAB占用的内存。释放B对象的内存时,内存将自动释放。

在不破坏包含objAB对象的情况下,您无法做任何事情来释放类B中的objA占用的内存。

您可以显式调用objA的析构函数,但这不会释放任何内存。之后访问objA只会导致未定义的行为。并且最有可能在之后访问objA,因为C ++运行时销毁B对象时,它将调用objA的析构函数。

10-08 11:15