Форум: "Начинающим";
Текущий архив: 2006.10.22;
Скачать: [xml.tar.bz2];
ВнизВиртуальный конструктор. Как правильно переопределять? Найти похожие ветки
← →
Kolan © (2006-10-05 12:20) [0]Здравствуйте,
Никак не пойму одну вещь:
Возмем любой класс с виртуальным коструктором. НапримерTComponent
.
И его наследника.TMyOwnComponent = class(TComponent)
public
constructor Create(AOwner: TComponent); override;
end;
Компилируем все ОК.
А что если мне нужно передать в конструктор параметр? ТеTMyOwnComponent = class(TComponent)
public
constructor Create(AOwner: TComponent;
CompulsoryFactor: Integer); override;
end;
Естественно:[Pascal Error] Unit1.pas(19): E2037 Declaration of "Create" differs from previous declaration
Тогда делаю так:
TMyOwnComponent = class(TComponent)
public
constructor Create(AOwner: TComponent;
CompulsoryFactor: Integer);
end;
В этом случае имею противный Ворнинг, который мне ненравится[Pascal Warning] Unit1.pas(19): W1010 Method "Create" hides virtual method of base type "TComponent"
Так а как правильно?
← →
Stakan © (2006-10-05 12:22) [1]reintroduce;
← →
Kolan © (2006-10-05 12:25) [2]
> Stakan © (05.10.06 12:22) [1]
Те это подход правильный, только нужно подавить Warning?
← →
clickmaker © (2006-10-05 12:25) [3]constructor Create(AOwner: TComponent;
CompulsoryFactor: Integer); reintroduce;
← →
Kolan © (2006-10-05 12:26) [4]
> clickmaker © (05.10.06 12:25) [3]
Понятно :)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.10.22;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.049 c