Aquí http://www.parashift.com/c++-faq-lite/multiple-inheritance.html sección [25,14] diceHerencia jerarquía: constructor y destructor secuencia de ejecución
Los primeros constructores a ejecutar son las clases base virtuales en cualquier lugar en la jerarquía.
Traté de verificar que el uso siguiente programa:
A (pure virtual)
|
B
|
C
(virtual)/ \ (virtual)
E D
\ /
F
|
G (pure virtual)
|
H
cada clase tiene una c'tor y virtual d'tor. la salida es el siguiente:
A
B
C
E
D
F
G
H
~H
~G
~F
~D
~E
~C
~B
~A
Press any key to continue . . .
pero según cotización clases base virtual de constructores debe ejecutarse en primer lugar.
¿Qué entendí mal?
EDIT: Para aclarar mi pregunta, según mi entender, este comportamiento no tiene nada que ver con si una clase base es virtual o no. pero la cita insiste en Clase base virtual. ¿estoy claro o algo sospechoso allí?
Gracias.
ingrese el código que estaba utilizando para obtener respuestas más precisas. – amit
@amit, no necesita código aquí. Este comportamiento se espera ... – eran