virtual inheritance - Default Ctor wird aufgerufen, explizit wird jedoch ein anderer aufgerufen
-
otze schrieb:
Ich bin mir sicher, dass es einen Weg um die virtuell Vererbung rum gibt.
Ausserdem wäre ich vorsichtig, ob das was du da tust überhaupt funktioniert.vec ist zu dem Zitpunkt noch nicht konstruiert.
Das ist kein Problem.
Es wird ja nur ein lvalue (this->vec) gebildet, das auf zwar uninitialisierten aber reservierten (3.7.5) Speicher verweist. Die Konstruktion von Example hat begonnen, also kann ein Verweis auf sein Member vec gebildet werden. Und die weitere Verwendung dieses lvalues ist hier unproblematisch (3.8/5, 3.8/6).Vom Rest der Diskussion kriege ich bloss Kopfschmerzen...
-
Well?
Zu viel A Clockwork Orange geguckt?
Swordfish schrieb:
Komische Frage. Wann wird Speicher für
int i;reserviert? Bei der Deklaration von
idurch Bewegen des Stackpointers.Wieso sollt es für Klasseninstanzen anders sein?
Für Stackobjekte ist es sicherlich so.
Btw: Wird der Stackpointer nicht bei der Definition erhöht/erniedrigt?
-
...
-
Auf jeden Fall: Dankeschön!

-
Nö, kenn den Film nicht.
Naja. Dieser Anglizismus ist jedenfalls erschreckend.

bar liegt am Heap, new besorgt Speicher, danach def-ctor
Genau.
Der Stackrahmen wird bei Funktionseintritt eingerichtet.
Was meinst du mit "eingerichtet"?
-
Ich werde dann halt dennoch eine entsprechende set()-Funktion bauen, falls doch irgendwann einmal ein Objekt das nicht auf dem Stack liegt gewrapped werden muss.
Man weiß ja nie
-
...