【发布时间】:2015-07-07 18:38:16
【问题描述】:
我有我的自定义类,例如:
class MyClass {
public:
int i;
std:string name;
void DoSomeStuff();
}
和另一个带有我的自定义类列表的类:
class MyClassList {
public:
std::vector<MyClasss> myClassList;
}
列表析构函数应该如何释放内存中所有使用的向量空间:
MyClassList::~MyClassList
{
myClassList.clear();
delete &myClassList;
}
该代码是正确的、多余的还是错误的?
感谢您的帮助...
【问题讨论】:
-
你不需要在析构函数中删除。当调用析构函数时,它会自动清理所有内容
-
delete &myClassList;完全不正确。只有delete你new。从您向我们展示的不完整的 sn-ps 来看,MyClassList不需要析构函数定义。隐式定义的就足够了。 -
错了,别做任何事。 vector 管理自己的内存,并且您的类成员不是动态分配的。你
new了吗?不?然后不要删除。 -
那么,我将在这里使用一个空的析构函数:{},对吧?
-
您甚至不需要定义析构函数,编译器会为您创建一个,它会按照您的意愿完美运行。
标签: c++ memory vector destructor resource-management