Qui http://www.parashift.com/c++-faq-lite/multiple-inheritance.html sezione [25.14] diceEreditarietà gerarchia: Constructor & Destructor sequenza di esecuzione
I primi costruttori da eseguire sono le classi base virtuali ovunque nella gerarchia.
ho provato a verificarlo utilizzando il programma seguente:
A (pure virtual)
|
B
|
C
(virtual)/ \ (virtual)
E D
\ /
F
|
G (pure virtual)
|
H
ogni classe ha un c'tor e virtuale d'tor. l'output è il seguente:
A
B
C
E
D
F
G
H
~H
~G
~F
~D
~E
~C
~B
~A
Press any key to continue . . .
ma come da preventivo i costruttori delle classi di base virtuali devono essere eseguiti per primi.
cosa ho capito in modo errato?
MODIFICA: Per chiarire la mia domanda, Per quanto ne so, questo comportamento non ha nulla a che fare con se una classe base è virtuale o meno. ma la quotazione insiste su Virtual Base class. sono chiaro o qualcosa di strano lì?
Grazie.
si prega di fornire il codice che stavi usando per risposte più precise. – amit
@amit, non c'è bisogno di codice qui. Questo comportamento è previsto ... – eran