Я хочу, чтобы вектор удерживал указатели на некоторые объекты, которыми он будет владеть.Удаление ресурсов, управляемых вектором
Здесь вектор:
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' вместо этого. – Yuushi
@KirilKirov обновленный вопрос – johnbakers