Re[2]: delete и delete[ ]
От: LaPerouse  
Дата: 26.01.07 23:23
Оценка: -1 :))) :)
Здравствуйте, Андрей Тарасевич, Вы писали:

АТ>Здравствуйте, CompileError, Вы писали:


CE>>Правда ли, что если создать массив объектов, то при его удалении с помощью операции delete не будут вызваны деструкторы для каждого из элементов массива (обязательно надо использовать delete[ ] )?


АТ>Есль речь идет о массиве в динамической памяти, то удалять его нужно при помощи 'delete[]'. Попытка же удаления через 'delete' ведет к неопределеннному поведению. Именно к неопределеннному поведению. Все.


АТ>А всякое "не будут вызваны деструкторы" — это уже гадание на кофейной гуще, к делу никак не относящееся.



Вот это-то меня и напрягает в С++. В данном случае логичнее было бы иметь один вид уничтожения объекта (delete), чтобы тем самым уничтожить весь массив, ну, или на худой конец, его первый элемент. Вместо — этого — неопределенность, которую каждый разработчик компиляторов трактует по своему. GCC, например, грохает первый элемент. Меня, например, это начинает доставать.
Социализм — это власть трудящихся и централизованная плановая экономика.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.