![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Здрасте! ЗНАЮЩИЕ, помогите пожалуйста начинающему. Не могу разобраться с наследованием классов. Допустим есть три класса:
Код:
unit UnitBase; interface type BaseClass3=class end; BaseClass2=class end; BaseClass1=class end; implementation end. Код:
unit Unit3; interface uses UnitBase; type Class3 = class (BAseClass3) Owner:BaseClass1; S:String; constructor Create(aOwner:BaseClass1); end; implementation constructor Class3.Create(aOwner: BaseClass1); begin Owner:=aOwner; S:='Class3'; end; end. Код:
unit Unit2; interface uses UnitBase; type Class2 = class (BAseClass2) Owner:BaseClass1; S:String; constructor Create(aOwner:BaseClass1); end; implementation constructor Class2.Create(aOwner: BaseClass1); begin Owner:=aOwner; S:='Class2'; end; end. Код:
unit Unit1; interface uses UnitBAse,Unit2,Unit3; type Class1=Class(BaseClass1) Value2:Class2; Value3:Class3; S:String; constructor Create; end; implementation constructor Class1.Create; begin Value2:=Class2.Create(Self); Value3:=Class3.Create(Self); S:='Class1'; end; end. Проблема такая, как реализовать следующий код в модуле Unit2: Код:
implementation ... var C:Class2; S:String; begin S:=C.Owner.Value3.S; пробовал объявлять BaseClass2 и BaseClass3 абстрактными но так и не получается А если в двух словах , то : как потомку получить полный доступ к методам и переменным предка если они описаны в разных модулях программы и предок ссылается на модуль потомка????? Последний раз редактировалось gerych, 07.12.2011 в 20:28. |