|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Выдает ошибку при наследовании
Что мне сделать, чтобы я мог не передавать необязательные параметры при создании объекта класса, при такой конструкции, компилятор ругается на нехватку параметров.
Код:
unit Test; interface type TBaseClass = class public Name: String; Active: Boolean; constructor Create(Name: String; Active: Boolean = False); end; TChildClass = class(TBaseClass) end; implementation constructor TBaseClass.Create(Name: String; Active: Boolean = False); begin inherited Create; Self.Name := Name; Self.Active := Active; end; var MyClass: TChildClass; begin MyClass := TChildClass.Create('John'); // Not enough actual parameters. end. Если написать так, то все работает, но сама идея переписывать каждый раз конструктор мне кажется неправильной. Код:
unit Test; interface type TBaseClass = class public Name: String; Active: Boolean; constructor Create(Name: String; Active: Boolean = False); end; TChildClass = class(TBaseClass) public constructor Create(Name: String; Active: Boolean = False); end; implementation constructor TBaseClass.Create(Name: String; Active: Boolean = False); begin inherited Create; Self.Name := Name; Self.Active := Active; end; constructor TChildClass.Create(Name: String; Active: Boolean = False); begin inherited Create(Name, Active); end; var MyClass: TChildClass; begin MyClass := TChildClass.Create('John'); end. Может есть какое-то более простое решение? |