Здравствуйте, Курилка, Вы писали:
К>Просвятите чайника — никак не могу найти толкового описания времени жизни объектов в Delphi, есть такое ощущение, что для всех объектов нужно обязательно вызывать Free насильственно, что не очень-то помогает программисту на мой взгляд (для чего в C++ к примеру есть std:auto_ptr<>, но там для объекта в хипе деструктор вызывается автоматически). Допустим при возникновении исключений довольно криво будет всем объектам Free вызывать в случае чего...
К>Может есть всё-таки выход из ситуации?
К>(буду рад любым линкам по теме, сам что-то ничего пока не нашёл
)
в C++ все классы — суть object в Delphi, плюс автоматические деструкторы(с конструкторами хуже — в Delphi их можно заменить простые Init процедуры, "конструктор по умолчанию" обнуляет все поля). Так что class в Delphi совсем не то, что в C++. И принципы работы другие — выделяется только в куче, позволяет быть представителем интерфейса, COM-объектом напрямую, а не через страшные шаблоны как в C++ и пр. и пр. А вообще стоит посмотреть в исхдники VCL — там все такие кинструкции заключениы в try..finally..end, это такое правило

. Хотя я для свох нужд сделал обвязку типа smart pointer для Delphi на интерфейсе — все стало проще

правда для использования smart pointer существует жуткое количество ограничений, например нельзя использовать const& для содержимого

но только это проблемы самой идеи, а не реализации.