c++ - 销毁成员对象

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

最佳答案

您不需要做任何事情来释放 B 类中 objA 占用的内存。当释放B对象的内存时,内存自动释放。

如果不销毁包含 objA< 的 B 对象,则无法释放类 BobjA 占用的内存.

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

关于c++ - 销毁成员对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17650887/

相关文章:

c++ - 嵌套循环到尾递归

c++ - 为我的 AI 算法设置内存限制?

c# - 在 C# 中管理大对象

memory-management - 为什么第二个变量的地址不在第一个变量之后?

css - 我怎样才能增加 Bootstrap 模态高度

css - 针对特定浏览器使用不同的 CSS 样式

c++ - fstream open() Mac OS X 中的相对路径不起作用

c++ - 在模板函数中确定忠实表示整数类型参数的最短浮点类型

c++ - 'this' 是局部变量吗?

html - css shrinkwrap div 比其父级宽