| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > std::list< Object* > m_list.clear(); |
| Автор: GKosh 3.3.2006, 11:51 |
| std::list< Object* > m_list; ... m_list.clear(); Простой вопрос, clear() просто чистит свой список или вызывает деструкторы для содержащихся в нем указателей? То есть, на практике, для того чтобы очистить список объектных указателей нужно вручную перебирать его элементы, вызывая delete для каждого или достаточно clear()? while( !m_list.empty() ) { Object* p = m_list.back(); delete p; m_list.pop_back(); } |
| Автор: Daevaorn 3.3.2006, 12:04 |
| GKosh, Да, нужно самому удалять указатели. сlear() очищает список, т.е. вызывает деструкторы элементов. А если элемент это указатель, то сам понимаешь, никто за тебя память на которую они указывают удалять не будет. |
| Автор: GKosh 3.3.2006, 12:53 |
| Daevaorn, Спасибо! |
| Автор: np9mi7 5.3.2006, 15:28 | ||||
|