Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#15

AW: Versuche Objektorientierung zu lernen

  Alt 18. Feb 2012, 22:57
Wenn du keine weiteren Anforderungen an dein Objekt hast, dann brauchst du auch keinen speziellen constructor . // bedeutet? was sind "weitere Anforderungen?"
Wenn du in der Klasse noch einige Voreinstellungen vornehmen möchtest.
Delphi-Quellcode:
type
  TFoo = class
  private
    FData : integer;
  public
    constructor Create;
    property Data : integer read FData write FData;
  end;

...

constructor TFoo.Create;
begin
  inherited;

  // wir benötigen diesen constructor nur, weil wir FData mit dem Wert 10 initialisieren wollen
  FData := 10;
end;
Ich zitier mich kurz mal selber, dass hatte ich vorhin noch hinzu editiert weil ich mir mit meinem Verständnis nicht sicher bin!

Zitat:
Nur nochmal zum Verständnis:
Wenn ich inherited benutze dann greife ich auf die Funktion der Mutterklasse zu also:

constructor TAddtion.create;
begin
inherited;
end;

jetzt würde ich also wenn ich:

Rechnen:=TAddition.create;
Rechnen.calcit(a,b);

und dies würde bei mir dann in der Mutterklasse landen und somit würde nichts passieren da diese ja in meinem Bsp. leer ist.
Ja, und weil in dem constructor ja nichts passieren soll, dann kann man den auch gleich weglassen

Achso und danke jetzt funzts. Aber warum trat bei constructor create Eintrag nen Fehler auf?
Weil du in der Typ-Deklaration den constructor angegeben hattest, aber diesen nicht ausformuliert hast.
Delphi-Quellcode:
type
  TFoo = class
  public
    constructor Create;
    procedure DoSomething;
  end;

...

// Das hier fehlte bei dir !!!
constructor TFoo.Create;
begin
  inherited;

end;

procedure TFoo.DoSomething;
begin
  // some code
end;
Das meinte ich mit "Alles was du in der Typ-Deklaration angibst, musst du auch ausformulieren ...

(sry dass ich euch gerade mit Fragen über Fragen bombardiere aber ich will dass bis Mitternacht durch haben soweit^^)
Hast ja noch eine gute Stunde
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat