Veröffentlicht 5. April 200124 j Hallo, weiß jemand, wie ich bei einer diamantförmigen Vererbung A / \ B C \ / D B und C dazu bringe, nicht den Default-Konstruktor von A aufzurufen? Geht das überhaupt? Vielen Dank schon im Voraus PP
5. April 200124 j Original erstellt von ParameterParser: <STRONG>Hallo, weiß jemand, wie ich bei einer diamantförmigen Vererbung A / \ B C \ / D B und C dazu bringe, nicht den Default-Konstruktor von A aufzurufen? Geht das überhaupt? </STRONG> Hallo PP, ja, das geht. Du musst dazu in A einen anderen Ctor schreiben, den Du in B und C aufrufst. Der Aufruf erfolgt aber nicht im Anweisungsblock, sondern unterliegt der Chainingkette, die der Compiler anlegt, weil die Basisklasse vor der abgeleiteten Klasse bearbeitet wird. Darum muss das in einer Liste erfolgen, etwa so: B :: B(int a, int : A(a) // Basisklasse A mit a initialisieren { // Subklasse B mit b initialisieren } Uli
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.