protected-vererbte Attribute in Initialisierungsliste initialisieren?
-
Hallo,
protected-attribute die geerbt werden, können in der erbenden Klasse ja direkt verwendet werden. Wieso kann ich sie aber nicht in der Initialisierungsliste initialisieren? Der g++ sagt dann, diese Attribute sind ihm nicht bekannt?
-
Gegenfrage...
Welchen Vorteil würde es gegenüber einer Initialisierung im Konstruktor haben?
-
Du kannst/solltest aber doch den Basiskonstruktor in der Initialisierungsliste aufrufen und der wiederrum initialisiert seine Member in der Liste.
-
Es handelt sich dabei ja noch immer um Attribute der Basisklasse - sie sind nur der erbenden Klasse zugänglich.
-
.. weil sie bereits initialisiert sind, und zwar vom Konstruktor der Basisklasse. Bevor das erste Member der abgeleiteten Klasse initialisiert ist, sind das Objekt der Basisklasse und damit alle protected und sonstigen Member bereits fertig initialisiert.
Ergo muss die Initialisierung der Member einer Basisklase im Konstruktor der Basisklasse erfolgen; ggf. über Parameter im Konstruktor.