【发布时间】:2018-06-20 02:44:01
【问题描述】:
如果我在类中有指针的类和向量,我应该如何编写析构函数来正确释放内存? 对吗?
~Class()
{
for(int i = 0; i<v.size(); i++)
{
delete v[i];
}
}
或者我也应该从向量中删除元素?还是有其他解决方案?
~Class()
{
for(int i = 0; i<v.size(); i++)
{
delete v[i];
v.erase(e.begin() + i);
}
}
【问题讨论】:
-
使用
std::unique_ptr的向量它会为你完成这项工作。 -
你必须删除
vector<int>的元素吗? -
如果您正在处理不支持 C++11 的编译器,那么您可以查看
::boost::ptr_vector -
我认为第一种方法会更好,因为您不需要擦除向量中的元素,向量的析构函数会为您完成
标签: c++ class oop vector destructor