我有一个关于析构函数的基本问题。
假设我有以下课程
class A
{
public:
int z;
int* ptr;
A(){z=5 ; ptr = new int[3]; } ;
~A() {delete[] ptr;};
}
现在析构函数应该销毁对象的实例。
上面的析构函数正是这样做的,释放由 new 分配的动态分配的内存。
但是变量呢z
?我应该如何手动销毁它/释放分配的内存z
?当类超出范围时它会自动销毁吗?
它会自动“销毁”,尽管在您的示例中int z
是 POD 类型,没有显式的析构函数...内存只是被回收。否则,如果该对象有一个析构函数,则会在主类的析构函数主体之后调用它来正确清理该非静态数据成员的资源A
已完成,但未退出。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)