Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2002.04.15;
Скачать: [xml.tar.bz2];

Вниз

Delphi: конструктор и деструктор   Найти похожие ветки 

 
Shaman_Naydak   (2002-03-06 12:49) [0]

Тут у мнея одна мыслишка появилась по поводу конструкторов и деструкторов в Дельфях при обсуждении
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1015335325&n=3
а именно:
Как известно, для того чтобы создавать объект корректно одним и тем же конструктором независимо от класса (предок/наследник) конструктор необходимо объявить виртуальным (см. TComponent).
И то, что это возможно, сильно облегчает жизнь Delphi"stam по сравнению с C++ (Кстати, я категорически против устраивания в этой ветке флейма Delphi vs C++ !!!! Допустимы только сухие высказывания и только в том случае, если четко знаешь как реализована та или иная вещька в ОБЕИХ системах).

Итак, вернемся к нашим баранам..
Но, если не ошибаюсь, в третьих Delph"ях у TObject"a появились виртуальные AfterConstruction & BeforeDestruction!
=> Если выделение памяти и освобождение объектов перенести из конструкторов/деструкторов в эти методы, то необходимость в виртуальных конструкторах в принципе отпадает, и любой объект можно будет создать корректно TObject"овским Create.

=> Возникает следующая идея. TObject"овский Create - конструктор по умолчанию. Все остальные конструкторы используются для передачи параметров.

В сочетании же с цепочкой классов (см.вышеуказанную ветку) это дало бы возможность в Run-time корректно создать любой! объект.
А вы как думаете?



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2002.04.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.006 c
3-46281
vladnt
2002-03-26 12:05
2002.04.15
Возникла маленькая проблемка.


7-46530
SVF
2002-01-12 15:40
2002.04.15
Иконка в ListBox


1-46384
VBill
2002-04-01 13:11
2002.04.15
Как определить какая прога


3-46268
Sergey_R
2002-03-23 19:13
2002.04.15
Вложенный подзапрос.


7-46527
Fellomena
2002-01-18 14:06
2002.04.15
API, System resources and ******* (inside)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский