Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Konstruktor von TObject (https://www.delphipraxis.net/124097-konstruktor-von-tobject.html)

guidok 14. Nov 2008 10:03


Konstruktor von TObject
 
Mal ne profane Frage, wenn ich mir den Konstruktor von TObject angucke, dann finde ich da nur folgendes:

Delphi-Quellcode:
constructor TObject.Create;
begin
end;
Erstelle ich nun eine Klasse, die von TObject abgeleitet ist, hat es dann irgendeinen Sinn "inherited" aufzurufen? Ebenso ist es beim Destruktor.

Gruß,

Guido

Bernhard Geyer 14. Nov 2008 10:07

Re: Konstruktor von TObject
 
Unbedingt notwendig ist es m.E. nicht, da die Speicherallokierung automatisch geschieht.

Aber sinnvoll wenn du irgendwann mal nicht mehr von TObject ableitest vergisst du auch nicht dort inherited einzutragen.

mkinzler 14. Nov 2008 10:12

Re: Konstruktor von TObject
 
That's compiler magic

guidok 14. Nov 2008 10:28

Re: Konstruktor von TObject
 
Zitat:

Zitat von mkinzler
That's compiler magic

And that means?

sirius 14. Nov 2008 10:30

Re: Konstruktor von TObject
 
Zitat:

Zitat von Bernhard Geyer
Aber sinnvoll wenn du irgendwann mal nicht mehr von TObject ableitest vergisst du auch nicht dort inherited einzutragen.

Und dann gibt es ja noch diese Class helper. Wenn also jemand unter deinen Füßen TObject verändert...dann gehört er zwar mit diesen Füßen getreten. Aber genau dann ist ein inherited notwendig.

jbg 14. Nov 2008 10:57

Re: Konstruktor von TObject
 
Zitat:

Zitat von Bernhard Geyer
Aber sinnvoll wenn du irgendwann mal nicht mehr von TObject ableitest vergisst du auch nicht dort inherited einzutragen.

Das passiert z.B. wenn man von TObject auf TInterfaceObject oder gar TInterfacedPersistent umstellt, weil man ein Interface (RefCounted bzw. Nicht RefCounted) implementieren möchte.

mkinzler 14. Nov 2008 12:00

Re: Konstruktor von TObject
 
Zitat:

Zitat von guidok
Zitat:

Zitat von mkinzler
That's compiler magic

And that means?

Das der zugeörige Code nicht im Quellcode steht sondern vom Compiler automatisch gemacht wird

Apollonius 14. Nov 2008 16:06

Re: Konstruktor von TObject
 
Wenn man sich einen Konstruktor- oder einen Destruktor-Aufruf in der CPU-Ansicht ansieht, wird man feststellen, dass alle Konstruktoren und Destruktoren ein spezielles Vor- und Nachspiel haben. Im Konstruktor werden bedingt _ClassCreate (welches wiederum bedingt InitInstance aufruft) und _AfterConstruction (welches AfterConstruction aufruft) aufgerufen.

guidok 16. Nov 2008 08:44

Re: Konstruktor von TObject
 
Danke, ich weiß jetzt bescheid.

xZise 16. Nov 2008 09:44

Re: Konstruktor von TObject
 
Muss man dennoch ein inherited im Create machen? Weil overriden kann man den Constructor ja nicht?

MfG
xZise


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:19 Uhr.
Seite 1 von 2  1 2      

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