Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Create oder AfterConstruction überschreiben? (https://www.delphipraxis.net/67516-create-oder-afterconstruction-ueberschreiben.html)

Shaman 15. Apr 2006 21:38


Create oder AfterConstruction überschreiben?
 
Hallo zusammen

Es ist ja üblich, in einer abgeleiteten Klasse den Konstruktor zu überschreiben, um dort Initialisierungen vorzunehmen und Objekte zu erstellen. Jedenfalls hab ich das immer so gemacht... Jetzt frage ich mich, ob es hierfür nicht mehr Sinn macht, die Methode AfterConstruction zu überschreiben, vorallem weil Create ja nicht virtuell ist. Analog Destroy und BeforeDestruction.

Gibt es da irgendwelche Unterschiede zwischen diesen beiden Varianten? Welche ist zu bevorzugen? :gruebel:

Gruss
Shaman

Dax 15. Apr 2006 21:43

Re: Create oder AfterConstruction überschreiben?
 
Aarghh! Destroy ist schon bei TObject virtuell ;) Und Create kannst auch einfach virtuell machen.. Alle VCL-Komponenten haben virtuelle Konstruktoren. AfterCreation und BeforeDestruction sind eher für andere Dinge gedacht, die zur Initalisierung/Finalisierung gehören, aber nicht in den Konstruktor/Destruktor.

Shaman 15. Apr 2006 21:47

Re: Create oder AfterConstruction überschreiben?
 
Jepp, dass Destroy virtuell ist, ist schon klar, aber Create eben ursprünglich nicht. Stört mich eben ein wenig. :wink:

Dax 15. Apr 2006 21:51

Re: Create oder AfterConstruction überschreiben?
 
Dann machs wie ich ;)
Delphi-Quellcode:
Type
  TObjectEx = class
  public
    constructor Create; virtual;
  end;

constructor TObjectEx.Create;
begin
  inherited;
end;
edit: später dann aber auch davon ableiten und nicht von TObject ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz