我想释放类中定义的对象的内存
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;
}
最佳答案
您不需要做任何事情来释放 B
类中 objA
占用的内存。当释放B
对象的内存时,内存自动释放。
如果不销毁包含 objA< 的
.B
对象,则无法释放类 B
中 objA
占用的内存
您可以显式调用objA
的析构函数,但这不会释放任何内存。当您之后访问 objA
时,它只会导致未定义的行为。而且很可能 objA
将在之后访问,因为当 C++ 运行时销毁 B
对象时,它会调用 objA 的析构函数
。
关于c++ - 销毁成员对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17650887/