我有以下代码,我想知道是否如此delete b
这里有必要吗?
我的操作系统会自动清除分配的内存区域吗?
class A
{
B *b;
A()
{
b = new B();
}
~A()
{
delete b;
}
};
非常感谢。
是的,你必须delete
使用创建的每个对象new
你拥有的。在这种情况下,它看起来像class A
拥有该实例class B
并负责调用delete
.
使用智能指针进行管理会更好class B
实例生命周期。另请注意,您必须实现或禁止赋值运算符和复制构造函数class A
以防止浅复制对象,这会给你带来很多麻烦。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)