AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

overload, override, virtual, inherited

Ein Thema von Char · begonnen am 23. Okt 2003 · letzter Beitrag vom 9. Sep 2004
 
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.123 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: overload, override, virtual, inherited

  Alt 23. Okt 2003, 17:05
Moin Char,

Zitat von Char:
Das versteh ich eben nicht, ich dachte wenn ich TEigeneKlasse.create aufrufe, wird einfach TObject.create aufgerufen, selbst wenn ich was eigenes in TEigeneKlasse.create geschrieben habe.

Was macht nun:

Delphi-Quellcode:
procedure TEigeneKlasse.create;
begin

Hallo := 123; { <- nur als Beispiel jetzt }

end;
Ruft diese Prozedur
a) nur TObject.create; auf,
b) erstellt sie eine Instanz von TEigeneKlasse und ändert den Inhalt der Variablen,
c) erstellt sie KEINE Instanz von TEigeneKlasse, ändert aber den Inhalt der Variablen (macht keinen Sinn oder?),
d) ändert es den Inhalt der Variablen und ruft TObject.create auf?

Ich dachte eben a)...
a)
Nein, Du rufst hier nirgends die ererbte Methode des Vorfahren auf
b)
Nein, der Konstrukter erstellt niemals eine Instanz seiner eigenen Klasse, sondern wird zum initialisieren beim Bilden einer Instanz aufgerufen
c)
Jain, sie erstellt keine Instanz (Ja) und ändert den Inhalt der Variablen nicht (Nein)
d)
Jain, der Variableninhalt wird geändert (Ja), TObject.Create wird nicht aufgerufen (Nein)

Der Konstruktur dient einzig und allein dazu eventuell erforderliche Initialisierungen vorzunehmen, wenn man eine Instanz der Klasse bildet.
Da dies auch für die Vorfahrklasse gilt, sollte man hier auch, mittels inherited, den Konstruktor des Vorfahren aufrufen. Dies geschieht nicht automatisch.

Sollte es nicht erforderlich sein, dass Deine abgeleitete Klasse etwas initialisiert, brauchst Du auch keinen Konstruktor anzugeben. Dann wird automatisch der des Vorfahren genommen, wenn Du eine Instanz bildest.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz