我想释放类
中定义的对象的内存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;
}
答案 0 :(得分:3)
您无需执行任何操作即可释放课程objA
中B
占用的内存。释放B
对象的内存时会自动释放内存。
在不破坏包含objA
的{{1}}对象的情况下,您无法释放B
类B
占用的内存。
您可以显式调用objA
的析构函数,但这不会释放任何内存。当您之后访问objA
时,它只会导致未定义的行为。之后很可能会访问objA
,因为当C ++运行时破坏objA
对象时,它将调用B
的析构函数。