Einzelnen Beitrag anzeigen

Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.614 Beiträge
 
#8

Re: overload, override, virtual, inherited

  Alt 23. Okt 2003, 17:09
C ist die richtige Antwort.
Aber Merke: nicht create selber erstellt die Instanz!



Nochmal langsam:

Delphi-Quellcode:
   myObject = class
   public
      constructor create;
   end;

   my2ndObject = class
   public
      constructor create; override;
   end;
Sodele:

Delphi-Quellcode:
constructor myObject.Create;
begin
   ShowMessage('Instanz von myObject erzeugt...');
end;


constructor my2ndObject.Create;
begin
   ShowMessage('Instanz von my2ndObject erzeugt...');
end;
Wie leicht zu erkennen ist, ruft nun ein:
Delphi-Quellcode:
procedure Test;
var
   obj: my2ndObject;
begin
   obj := my2ndObject.Create;
end;
nur den Konstruktor von my2ndObject auf. Es erscheint also _nicht_ die Nachricht, das ein myObject erzeugt wurde. Der Konstruktor von myObject wird nur dann ausgeführt, wenn Du im aufgerufenen Konstruktor (my2ndObject.Create) auch ein inherited aufrufst.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat