Einzelnen Beitrag anzeigen

Bodenseematze

Registriert seit: 10. Jul 2023
68 Beiträge
 
#1

Konstruktor-Aufruf "Too many actual parameters" - warum?

  Alt 13. Jul 2023, 11:36
Delphi-Version: 7
Hallo,

ich habe eine eigene Klasse in einer Unit, deren Konstruktoren in folgender Art deklariert sind:
Delphi-Quellcode:
type
TMyClass = class( TPersistent )
public
   constructor Create( const dVal_ : Extended;
                                    const iNumDigits_ : ShortInt ); overload;
   constructor Create( const sVal_ : String;
                                    const iNumDigits_ : ShortInt ); overload;

protected
   constructor Create(); overload;
end;
Jetzt versuche ich in einer anderen Unit, die Klasse zu verwenden:
Delphi-Quellcode:
procedure Irgendwas()
var test : TMyClass;
begin
  test := TMyClass.Create( 0.0, 2 );
end;
Da kommt dann in der Zeile, die den Konstruktor aufruft vom Delphi7-Compiler die Fehlermeldung "Too many actual parameters"
Warum?

Noch komischer finde ich dann, dass wenn ich das in folgendes ändere, keine Fehlermeldung mehr kommt:
Delphi-Quellcode:
procedure Irgendwas()
var test : TMyClass;
begin
  test := TMyClass.Create();
end;
Ich kann also den als "protected" gekennzeichneten Konstruktor von außerhalb benutzen, die öffentlich deklarierten aber nicht?
Verstehe ich nicht...

Hat mir jemand eine Erklärung (und Lösung) dafür?

Geändert von Bodenseematze (13. Jul 2023 um 13:19 Uhr)
  Mit Zitat antworten Zitat