Что мне сделать, чтобы я мог не передавать необязательные параметры при создании объекта класса, при такой конструкции, компилятор ругается на нехватку параметров.
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | 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' );
end .
|
Если написать так, то все работает, но сама идея переписывать каждый раз конструктор мне кажется неправильной.
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | 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 .
|
Может есть какое-то более простое решение?