Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
#define LESS_PARAMS // einige wenige Parameter #define MANY_PARAMS // ein Haufen Parameter class Base { public: A( MANY_PARAMS ); }; class Sub1 : virtual public Base { public: Sub1( LESS_PARAMS ); }; class Sub2 : virtual public Base { public: Sub2( LESS_PARAMS ); }; class D : public Sub1, public Sub2 { public: D( LESS_PARAMS ) : Sub1( /* delegiere alle Parameter */ ), Sub2( /* delegiere alle Parameter */ ) }; |
Zitat von »"the[V«
oid"]Das Problem ist, dass ich in D den Konstruktor von Base nicht aufrufen kann, da dieser Aufruf, je nach dem, ob es sich nun um ein Sub1 oder um ein Sub2 handelt, unterschiedlich gestalten müsste (von den Parametern her).
Also doch ein Design-Fehler meinerseits?
Zitat von »"the[V«
oid"]Das Problem ist, dass ich in D den Konstruktor von Base nicht aufrufen kann, da dieser Aufruf, je nach dem, ob es sich nun um ein Sub1 oder um ein Sub2 handelt, unterschiedlich gestalten müsste (von den Parametern her).
Also doch ein Design-Fehler meinerseits?
Zitat von »"drakon"«
Es scheint ein regelrechter Meinungskonflikt zu sein, ob jetzt Mehrfachvererbung gut oder böse ist.
Zitat von »"the[V«
oid"]Diamond ganz pauschal ein Design-Fehler? O.o
Glaub ich kaum. Kann mir gut einige Fälle vorstellen, wo es Sinn macht.
Werbeanzeige