Vererbung und Konstruktoren
-
Hallo,
folgende Frage:
ich habe eine Klasse Ober und eine Klasse Unter die von der Oberklasse erbt.
Die Klasse Ober hat eine protected int Variable x und einen Default Konstruktor (und Destr.) der diesen Wert auf 0 setzt.
Die Klasse Unter hat eine private int Variable y und einen Default Konstruktor (und Destr.) der diesen Wert auf 0 setzt.
Welche Konstruktoren bzw. Destruktoren (und warum) werden aufgerufen, wenn
- eine neue Instanz der Klasse Unter angelegt wird
- eine Instanz der Klasse "zerstört" wird
- mit new neue Instanzen der Klasse unter angelegt werden
- wenn mit delete diese Instanzen wieder gelöscht werden----------
Es geht darum ob man in den Konstruktoren der "Kinderklassen" die Konstruktoren der "Elternklassen" aufrufen muss.Danke
Capasso
-
Früher, da war alles besser, damals hat man sowas noch selbst ausprobiert, indem man etwas à la "ctor Unter" im Konstruktor ausgegeben hat.
-
Habe leider momentan keinen Compilier zur Verfügung -> würde es aber gerne wissen
-
eine neue Instanz der Klasse Unter angelegt wird oder mit new neue Instanzen der Klasse unter angelegt werden
1 Konstruktor von Ober
2 Konstruktor von Untereine Instanz der Klasse "zerstört" wird oder wenn mit delete diese Instanzen wieder gelöscht werden
falls der Destruktor von Ober virtual ist (was er sein sollte):
1 Destruktor von Unter
2 Destruktor von Ober
falls der Destruktor von Ober nicht virtual ist (was nicht sein sollte und imho ein Fehler ist):
1 nur Destruktor von Ober
-
Danke
-
bluecode schrieb:
falls der Destruktor von Ober nicht virtual ist (was nicht sein sollte und imho ein Fehler ist):
1 nur Destruktor von OberDas passiert nur, wenn man ein Unter-Objekt mittels delete eines Ober-Zeigers löscht. Nicht generell.