Форум вопросов и ответов

Форум вопросов и ответов (https://www.otvetnemail.ru/)
-   Продолжение архива вопросов (https://www.otvetnemail.ru/prodolzhenie-arhiva-voprosov-808/)
-   -   qDeleteAll - глупый и опасный метод! (https://www.otvetnemail.ru/prodolzhenie-arhiva-voprosov-808/qdeleteall-glupyj-i-opasnyj-metod-256732/)

Guest 28.09.2011 16:09

qDeleteAll - глупый и опасный метод!
 
КодC++ (Qt)void qDeleteAll ( ForwardIterator begin, ForwardIterator end )void qDeleteAll ( const Container & c )Deletes all the items in the range [begin, end) using the C++ delete operator. The item type must be a pointer type ...И примером:КодC++ (Qt)QList list;list.append(new Employee("Blackpool", "Stephen"));list.append(new Employee("Twist", "Oliver"));qDeleteAll(list.begin(), list.end());list.clear();Зачем нужен метод, чистящий память, но оставляющий в контейнере невалидные указатели?Это абсолютно глупо! Нет ни одного случая, где бы эти указатели-хвосты могли бы понадобиться..clear() просто должно было быть там по умолчанию в реализации qDeleteAll.Все равно приходится либо помнить об его вызове, либо писать свою над-функцию...Совершенно непонятна такая стратегия


Часовой пояс GMT, время: 14:54.


© www.otvetnemail.ru - Форум вопросов и ответов.