销毁成员对象

时间:2013-07-15 09:28:40

标签: c++ css memory-management destructor

我想释放类

中定义的对象的内存
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;
}

1 个答案:

答案 0 :(得分:3)

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

在不破坏包含objA的{​​{1}}对象的情况下,您无法释放BB占用的内存。

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