Ein Bissi intensiver kenn ich mich aus, habe aber noch nie einen Compiler gebaut oder versucht ein eigenes Speichermodell zu entwerfen.
So tief meinte ich nu auch wieder nich
Delegation hat einen Geschwindigkeitsnachteil
Der aber an und ab wegoptimiert wird
für Polymorphen Zugriff muss man sich dann erstmal eine Klasse ohne Daten, rein virtuell basteln.
Wieso muss man ???
Oder meinst du der Compiler macht das ? Ich glaub eher nicht ...
Aber allein die Gedanken sind hier scho eigentlich verwerflich (designtechnisch gesehen).
Du willst auf Funktionalitaet von irgendwas zugreifen, und waehlst dazu den Weg ueber Polymorphie ???
Dabei solltest du Polymorphie genau entgegengesetzt verwenden, um funktinalitaet zur Laufzeit auszutauschen ....
Selbst Qt verwendet Mehrfachvererbung (z. B. QWidget)
Ich bin kein feind von multipler Vererbung. Man sollt es aber wirklich nur da einsetzen wo es einem was bringt.
WO und warum verwendet qt mehrfachvererbung ??? Meines wissens nach nur um den UI generierten code mit der Widget->basisfunktionalitaet zu verknuepfen .... und da auch nur weil sich damit code leichter generieren laesst.
Fuer handgeschriebenen Code eher ne zweifelhafte Motivation.
taucht bei handgeschriebenen code mehrfachvererbung auf, wollte der Urheber zu 90% erreichen:
Nen baukastensystem, wo er funktionalitaet einfach hinzu ... erben kann.
udn sich den schreibaufwand fuer die delegation an die composition sparen.
Polymorphie zum wiederverwenden von Code ? Schreibaufwand sparen ???
Aber zu dem Kernproblem noch mal ...
http://de.wikibooks.org/wiki/C++-Progra ... _Vererbung
es gibt A::methodeY()
du willst D::methodeY() mit irgendwas verbinden (connect) kein problem
jetzt heist aber vererbung das D sich sowohl wie B, als auch wie C verhalten muss
Also koenntest du auch C::methodeY() verbinden
und B::methodeY() mit was verbinden
Bist du sicher das der compiler bei allen versionen den selben methodenpointer verwendet?
Ciao ....