Что мне сделать, чтобы я мог не передавать необязательные параметры при создании объекта класса, при такой конструкции, компилятор ругается на нехватку параметров.
Код:
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.
Может есть какое-то более простое решение?