我想要一个矢量来保存它将拥有的一些对象的指针。删除矢量管理的资源
这里是矢量:
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];
}
这是可以接受的内存管理技术吗?我认为这个循环是需要的,因为当它的拥有类被销毁时向量超出范围时,只有指向这些对象的指针才会被删除,对吧?
你的矢量是如何声明的? – 2013-04-05 06:40:07
是的。但看看'std :: unique_ptr'而不是这样做。 – Yuushi 2013-04-05 06:40:53
@KirilKirov更新问题 – johnbakers 2013-04-05 06:42:10