Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.28;
Скачать: CL | DM;

Вниз

inherited в конструкторах че за зверь?   Найти похожие ветки 

 
vilfred   (2002-11-17 23:33) [0]

допустим у меня есть гараж у которого есть стены, я строю дом и для этого наследую стены гаража. Мне нужно навесить на стены дома картины, для этого я вызываю гараж и преспокойно навешиваю на его стены картины. Причем гараж и дом это переменные, типы котроых принадлежат одному классу.

предположим у меня есть дверь, которая открывается в гараже кверху, а в доме сбоку. Я должен тогда сделать гаражную дверь виртуальной, дабы менять её свойства у потомка.

Чтобы создать объект мне надо написать конструктор, и в нем определить метод класса, который является объектом.

если я пишу

constructor TMainForm.Create(AOwner: TComponent);
inherited;

то я тем самым вызываю унаследованный конструктор родительского класса TForm?

Thanks!

p.s.(c тоской)как же просто в перле:
print "Hello World!\n"; и никаких гвоздей.

p.s.s. класс то собственно придуман для того, чтобы выдержить тон глобальной типизации что-ли?


 
Dmk ©   (2002-11-18 00:20) [1]

Если вы захотите использовать метод Create для наследника вашего окна, то вам придется сделать вызов вышеуказанного метода. А слово Inherited всего лишь способ передать управление родительскому классу для инициализации некоторых структур, переменных или действий в родительском классе. Причем важно когда вы поставите это слово, до или после вашего кода. Если до, то может произойти ошибка времени выполнения, поскольку какие-то "элементы" не были инициализированы, а если после, то может быть все в порядке. Все зависит от типа ситуации использования.



 
Dmk ©   (2002-11-18 00:26) [2]

Пример:

Constructor TDrawForm.CreateDrawForm(AOwner: TComponent);
begin
//обращение к переменным родителя в этом месте
//вызовет ошибку
Inherited Create(AOwner); //Сначала выполним родительский код
//... Далее ваш код

end;

А в деструкторе наоборот, сначала ваш код, потом код родителя.
Все.


 
vilfred   (2002-11-18 01:03) [3]

угу, спасибо за разъяснения!!! буду разбираться дальше.



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

Текущий архив: 2002.11.28;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.011 c
1-93066
NikolaB
2002-11-15 19:38
2002.11.28
Pomogite,pls!Kak mojno vipolnit virtual metod dalnego roditelia?


7-93263
SKing
2002-09-26 08:49
2002.11.28
LPT(DOS) and Delphi


14-93240
FeatheryMan
2002-11-10 17:17
2002.11.28
Office+Delphi?


3-92939
voice_inf
2002-11-12 00:49
2002.11.28
Как в поле таблицы типа Graphik поместить изображение Jpg


3-92860
Nick-From
2002-11-06 23:18
2002.11.28
Delphi + Prolog = Экспертная система