Re[4]: Отсутствие деструкторов!? Как же дальше жить?
От: Аноним  
Дата: 10.02.02 15:53
Оценка:
Здравствуйте Аноним, Вы писали:

АШ>> ...они убрали деструкторы. Предлагаемая взамен комбинация Finalize/Dispose не гарантирует того, что гарантировал автоматический деструктор C++. Все хорошо, если освобождаемые ресурсы в памяти, то есть подвласны сборщику мусора. Но бывают ситуации когда это не так:


А>>>А почему бы не сделать метод close() и вызывать его вместо деструктора ? :)


АШ>>Это решение "в лоб". (Кстати вышеупомятутый Dispose так и предлагают использовать). Кто гарантирует что я смогу вызвать этот Close? :???: В случае исключительных ситуаций выполнение кода может быть не совсем детерминировано. Это ж что ж возвращаемся в прошлый век?

АШ>>"Контролируй друже то шо пышеш, бо реализовать аналог smart pointer-а теперь низя"

АШ>>Андрей


А>Андрей, я в .Net не силен, но раз уж микрософт столько содрала с Java, то наверняка есть и аналог try{}finally{}


Конечно такие вещи есть, но ими можно обложить конкретный блок кода, а деструктор гарантирует "целостность данных", если можно так выразится, глобально. Неважно закончилось выполнение успешно или по исключению, обрабатывал я иск. ситуации или нет, деструктор вызывается ВСЕГДА И АВТОМАТИЧЕСКИ. Именно этим и был всегда силен С++.

Андрей.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.