【发布时间】:2013-04-05 06:39:04
【问题描述】:
我想要一个向量来保存指向它将拥有的某些对象的指针。
这是向量:
private:
std::vector<fppVirtual*> m_fapps;
我已经创建了这样的元素:
m_fapps.push_back(new fpp1(renderingEngine)); //fpp* are subclasses of fppVirtual
m_fapps.push_back(new fpp2(renderingEngine));
m_fapps.push_back(new fpp3(renderingEngine));
由于m_fapps 是另一个类中的向量实例变量,我想确保该类的析构函数正确清理m_fapps:
for (int i=0, size=m_fapps.size();i<size;++i){
delete m_fapps[i];
}
这是可接受的内存管理技术吗?我假设需要这个循环,因为当向量在其所属类被破坏时超出范围时,只会删除指向这些 new 对象的指针,对吧?
【问题讨论】:
-
你的向量是如何声明的?
-
是的。但请查看
std::unique_ptr而不是这样做。 -
@KirilKirov 更新问题
-
以后请贴出完整的代码示例。此类问题的答案通常比人们最初想象的要复杂,提供完整示例有助于确定问题(和答案)的范围。
标签: c++