![]() |
|
#1
|
||||
|
||||
![]() помогите, плз.
Создал класс, обявляю конструктор Код:
tmyclass = class ... private ... public constructor Create; override; end; Cannot override a static method Кнопка "+" - весы в правом верхнем углу сообщения... |
#2
|
|||
|
|||
![]() Ну тебе ж компилятор английским языком пишет - нельзя перекрыть статический метод. Все дело в том, что если родитель класса не указан, то идет наследование от TObject, а у него коструктор статический. Сначала ты должен сделать его виртуальным, а потом уже в потомках можно перекрывать:
Код:
type TBaseClass = class constructor Create; virtual; end; TMyClass = class(TBaseClass) constructor Create; override; end; Да, в классе TBaseClass можно, конечно, вызвать унаследованный конструктор путем указания inherited. Но это не обязательно, т.к. в TObject конструктор ПУСТОЙ. И еще. Помните, что то, что называется в Delphi "конструктор" по сути конструктором не является, а обеспечивает только инициализацию внутренностей класса. Сам класс создается специальным кодом, который программисту недоступен. |