Fed*_*ico 4 c++ memory-management
我对C++(以及一般的编程)比较陌生,所以如果问题不是很清楚,请原谅我.
我所拥有的是一个程序,其中创建了一个内部定义的类[我们称之为"class1"]的一定数量的对象.该程序工作得非常好,对象可以做到他们应该做的事情.
我目前要解决的问题如下:在程序退出之前,这些对象不会被销毁(因此内存不会被解除分配),但我需要更早的内存.
在该类的其他成员中,存在其他内部定义的类的对象(其还具有作为第三类的对象的成员).
我的问题如下:如何正确定义"class1"对象的析构函数,以便取消所有数据并释放内存?
我发现了(可能这对你来说很明显)一个析构函数就像
class1::~class1(void) {
}
Run Code Online (Sandbox Code Playgroud)
将无法工作(我为所有内部定义的类定义了类似的析构函数).
阅读我明白我的错误可能是那个什么都不做的析构函数.我该如何解决这个问题?
感谢任何回答/帮助/评论的人.
费德里科
m0s*_*it0 12
在C++中,您需要手动释放内存.没有垃圾收集器.你显然需要在析构函数中手动释放内存.如果您在使用分配的内存新的,你需要使用删除为您分配的每个资源新的解构内部,例如:
class1::~class1(void)
{
delete resource1;
delete resource2;
etc...
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15930 次 |
最近记录: |