![]() |
Zugriffsverletzung bei einem Constructor
Hallo Zusammen,
ich habe gerade eine neue Klasse geschrieben, jedoch wird mir beim Constructor eine Zugriffsverletzung angezeigt. Weiß jemand von Euch wieso?
Delphi-Quellcode:
Danke!
type TKonto = class
BeschEinnahmen:TStringlist; GeldEinnahmen:Tstringlist; BeschAusgaben:Tstringlist; GeldAusgaben:Tstringlist; KName:String; public Procedure Add(Art:String;Besch:String;Geld:String); Procedure Delete(Art:String;Index:Integer); Function CalcSaldo():String; Constructor NeuesKonto(NKName:string); Destructor KontoOhneSpeichernBeenden; end; implementation Destructor TKonto.KontoOhneSpeichernBeenden; begin BeschEinnahmen.Free; GeldEinnahmen.Free; BeschAusgaben.Free; GeldAusgaben.Free; end; Constructor TKonto.NeuesKonto(NKName:string); begin BeschEinnahmen:=Tstringlist.Create; //Hier ist der Fehler GeldEinnahmen:=Tstringlist.Create; BeschAusgaben:=Tstringlist.Create; GeldAusgaben:=Tstringlist.Create; KName:=NKName; end; |
Re: Zugriffsverletzung bei einem Constructor
Was den Fehler anbelangt vermute ich, dass du das so aufrufst:
Delphi-Quellcode:
statt richtig
var
xy: TKonto; begin xy.NeuesKonto(...);
Delphi-Quellcode:
xy existiert ja da noch nicht, und du versuchst trotzdem eine Methode daraus aufzurufen.
var
xy: TKonto; begin xy := TKonto.NeuesKonto(...); Dann zu dem Namen: Ein Konstruktor heißt Create und nicht NeuesKonto und der Destruktor Destroy... |
Re: Zugriffsverletzung bei einem Constructor
Zitat:
|
Re: Zugriffsverletzung bei einem Constructor
Zudem muss man im Konstruktor den geerbeten aufrufen
also als ersten Befehl
Delphi-Quellcode:
inherited Create(<Parameterliste>);
|
Re: Zugriffsverletzung bei einem Constructor
Wenn die Klasse von TObject abgeleitet ist, ist dies überflüssig, da der Konstrukor von TObject leer ist.
|
Re: Zugriffsverletzung bei einem Constructor
Zitat:
Zitat:
|
Re: Zugriffsverletzung bei einem Constructor
Zitat:
|
Re: Zugriffsverletzung bei einem Constructor
Zitat:
|
Re: Zugriffsverletzung bei einem Constructor
@jaenicke: Da Delphi oft zu Ausbildungszwecken benutzt wird, gehen viele nicht unbedingt auf die "sprachspezifischen Besonderheiten" ein sondern nutzen das was sie als "sprechende Namen" empfinden.
@mkinzler: Wie passt den Luckies Statement da rein? |
Re: Zugriffsverletzung bei einem Constructor
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz