Re[3]: мнение о Delphi
От: Gregory_krovosos  
Дата: 20.04.04 06:25
Оценка:
G_>>Далее, серьезный недостаток Delphi Pascal — отсутствие стековых объектов, все объекты — в дин. памяти и соот-но создание объекта и
G_>>его уничтожение приходится делать собственноручно.

S>http://www.rsdn.ru/Forum/?mid=394033
Автор: Serginio1
Дата: 26.09.03

S>http://www.rsdn.ru/Forum/Message.aspx?mid=551579&only=1
Автор: Serginio1
Дата: 26.02.04

S>http://www.rsdn.ru/Forum/Message.aspx?mid=551720&only=1
Автор: Serginio1
Дата: 26.02.04


Спасибо что напомнили про object, но:

Since object types do not descend from TObject, they provide no built-in constructors, destructors, or other methods. You can create instances of an object type using the New procedure and destroy them with the Dispose procedure, or you can simply declare variables of an object type, just as you would with records.

Т.е. нет у них конструкторов и деструкторов. Отсюда их неполноценность. 1) — объект придется инициализировать руками,
поскольку несмотря на то, что он будет лежать на стеке, как мы понимаем, в его полях будет мусор.
2) если объект выделяет динамический ресурс, то надо не забыть "дернуть" деструктор.
Вообще получается на нас опять ложится вся эта рутина, а прелесть стековых объектов в C++ именно в том, что у них есть и конструктор и деструктор
и они корректно вызываются, в том числе и при бросании исключений. И всю работу компилятор делает за нас.
Это позволяет пользоваться техникой Resource Managment (то есть выделять ресурс в конструкторе и освобождать в деструкторе)
ну и делать другие приятные вещи.

Повторюсь — в Delphi это достигается через try ... finally, это хорошая штука но опять-таки больше печатать.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.