![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,280
|
![]()
При создании нового класса обычно переопределяют конструктор и диструктов (ну или Free). По крайней мере нас так учили. Там мы инициализируем и обнуляем соответственно поля объекта. Но в классе TObject определены две процедуры
Код:
Дополнительное замечание: На использование AfterConstruction натолкнула такая ситуация. Создаю свой класс исключения. Но после его создания мне нужно выполнить некоторые действия. Если написать: Код:
|
![]() |
![]() |
![]() |
#2 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 19,042
|
![]() Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
![]() |
![]() |
![]() |
#3 | ||
C++, Java
Старожил
Регистрация: 10.04.2010
Сообщений: 2,665
|
![]() Цитата:
Цитата:
Код:
![]() |
||
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 19,042
|
![]() Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
![]() |
![]() |
![]() |
#5 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,474
|
![]() Цитата:
Код:
программа — запись алгоритма на языке понятном транслятору
|
|
![]() |
![]() |
![]() |
#6 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 20,999
|
![]() Цитата:
они в общем то для подобных случаев и нужны. в Делфи например так реализован класс RefObject(или как то так) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
![]() |
![]() |
![]() |
#7 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,280
|
![]()
2 Пепел Феникса
А что за RefObject? 2 All <мои действия> связаны не с полями объекта. Там исключение регистрируется в специальном списке. Вообще, ощущение такое, что AfterConstruction ввели, для устронения косяков своих же программистов. Ну не логичнее было бы иметь всегда один конструктор, а при необходимости сделать Код:
Последний раз редактировалось Sibedir; 20.01.2011 в 13:22. |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
![]()
Create и AfterConstruction введены для разных моделей инициацизации ресурса. Вот и всё.
Вы располагаете свои действия в том месте, где вам это нужно, согласно выбранной вами логике. Если для вас это значения не имеет, то обычно выбирают конструктор. Как пример - предлагаю посмотреть на реализацию TThread или TCustomForm. Очень чёткая и доступная логика.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
![]() |
![]() |