【发布时间】:2013-04-12 00:56:21
【问题描述】:
如果我有一个看起来像这样的类:
class SomeClass {
public:
SomeClass(int size) {
arr = new int[size];
someInt = size / 10;
};
~SomeClass() {
delete [] arr;
//do I need to somehow delete the int value 'someInt'?
};
private:
int *arr; //pointer to dynamically allocated array
int someInt;
}
究竟应该在析构函数中包含什么以避免内存泄漏?
我知道我需要删除数组,因为它是动态分配的,但我需要对 int 值或其他基本数据类型做任何事情吗?
谢谢, 乔纳森
【问题讨论】:
-
否 - 您应该使用
std::vector而不是手动分配空间。 -
@Jerry,这与学校作业有关,我需要使用动态分配的数组作为其中的一部分。我还需要正确解构课堂上的所有内容。
-
也要牢记三五法则。您的示例代码中没有遵循它。
-
@chris,不熟悉规则的名称 - 我查了一下。我只是把它放在一起作为一个简单的例子。在我的实际类中,我确实有一个默认(空)构造函数和一个复制构造函数。我还没有学过移动构造函数。如果您想 PM 给我,我会很乐意通读解释。 =)
标签: c++ memory int destructor