Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Wann sollte man Inherited(Create) verwenden und wann nicht. (https://www.delphipraxis.net/189774-wann-sollte-man-inherited-create-verwenden-und-wann-nicht.html)

Shark99 19. Jul 2016 22:32

Delphi-Version: XE5

Wann sollte man Inherited(Create) verwenden und wann nicht.
 
Mir ist soeben etwas bei einem BeispielCode aufgefallen:

http://docwiki.embarcadero.com/CodeE...tList_(Delphi)
Delphi-Quellcode:
  TNewObject = class
  private
    FName: String;
 
  public
    constructor Create(const AName: String);
    destructor Destroy(); override;
  end;
 
{ TNewObject }
 
constructor TNewObject.Create(const AName: String);
begin
  FName := AName;
end;
Wieso ist im TNewObject.Create() kein Inherited bei der ersten Zeile nötig?

Dalai 19. Jul 2016 22:48

AW: Wann sollte man Inherited(Create) verwenden und wann nicht.
 
TNewObject ist in diesem Fall von TObject abgeleitet (da ja nichts weiter definiert ist), und da TObject einen leeren Konstruktor hat, kann man das
Delphi-Quellcode:
inherited;
weglassen. Wenn nichts explizit dagegen spricht sollte man es aber hinschreiben, denn wenn sich irgendwann einmal im Konstruktor von TObject (oder irgendeiner anderen Basisklasse) etwas ändert, könnte es passieren, dass irgendwas nicht funktioniert.

Insgesamt glaube ich, dass es nur wenige Gründe gibt, kein
Delphi-Quellcode:
inherited;
zu benutzen.

MfG Dalai

Uwe Raabe 19. Jul 2016 23:00

AW: Wann sollte man Inherited(Create) verwenden und wann nicht.
 
Zitat:

Zitat von Dalai (Beitrag 1343021)
Insgesamt glaube ich, dass es nur wenige Gründe gibt, kein
Delphi-Quellcode:
inherited;
zu benutzen.

In jdem Fall sollten diese dann auch im Code dokumentiert sein, sonst kommt jemand noch auf die Idee, das zu ergänzen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:03 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