Vielleicht ist es schon zu spät heute ... oder verstehe ich die Fehlermeldung zu Recht nicht?
Create ist normal überschrieben.
Create(xxx) will ich virtuell erzeugen und überladen, damit ich es später bei Bedarf überschreiben kann.
Nach "overload; virtual;" wird "reintroduce;" jedoch nicht akzeptiert.
Wenn ich "reintroduce;" weg lasse funktioniert das Geraffel so.
Die unsinnige Fehlermeldung kann ich also nicht mal unterdrücken.
Oder liegt hier ein Denkfehler meinerseits vor?
Delphi-Quellcode:
TTest = class(TBase)
...
public
RTState: Boolean;
constructor Create; overload; override;
constructor Create(aClassName: String); overload; virtual; reintroduce;
destructor Destroy; override;
Zitat:
[dcc32 Warnung] soTypes.pas(104): W1010 Methode 'Create' verbirgt virtuelle Methode vom Basistyp 'TBase'
[dcc32 Fehler] soTypes.pas(104): E2169 Felddefinition nicht erlaubt nach Methoden oder Eigenschaften
[dcc32 Fehler] soTypes.pas(104): E2029 ',' oder ':' erwartet, aber ';' gefunden
[dcc32 Fehler] soTypes.pas(105): E2029 Typ erwartet, aber 'DESTRUCTOR' gefunden