如何正确定义析构函数

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)