Resultados de la búsqueda a petición "virtual-inheritance"

2 la respuesta

Clases base virtuales orden de creación

Tengo el siguiente problema: struct A1 { A1() { std::cout << "A1, "; } }; struct A2 { A2() { std::cout << "A2, "; } }; struct AA1 : virtual A1, A2 { AA1() { std::cout << "AA1, "; } }; struct AA2 : A1, virtual A2 { AA2(){ std::cout << "AA2, "; } ...

2 la respuesta

Herencia virtual: Error: no hay anulación final única

Sé que la herencia virtual está cubierta aquí antes y antes de hacer esta pregunta, revisé los detalles de la herencia virtual y revisé los detalles de un problema similar como los ...

7 la respuesta

¿Cómo resuelve la herencia virtual la ambigüedad del "diamante" (herencia múltiple)?

class A { public: void eat(){ cout<<"A";} }; class B: virtual public A { public: void eat(){ cout<<"B";} }; class C: virtual public A { public: void eat(){ cout<<"C";} }; class D: public B,C { public: void eat(){ cout<<"D";} }; int main(){ A *a = ...

5 la respuesta

Herencia virtual múltiple de C ++ frente a COM

La red está repleta de explicaciones de"temido problema de diamantes" [http://en.wikipedia.org/wiki/Diamond_problem]. También lo es StackOverflow. Creo que entiendo un poco, pero no puedo traducir ese conocimiento en comprender algo similar pero ...

1 la respuesta

Diseño de memoria de herencia virtual de C ++

Diseños de memoria de herencia virtualEstoy tratando de entender completamente lo que está sucediendo bajo el capó en la memoria con herencia virtual y vTables / vPtrs y qué no. Tengo dos ejemplos de código que he escrito y entiendo exactamente ...

4 la respuesta

Llamar al constructor sobrecargado de una clase base virtual

¿Hay alguna forma (práctica) de omitir el orden de llamada del constructor (virtual) normal? Ejemplo: class A { const int i; public: A() : i(0) { cout << "calling A()" << endl; } A(int p) : i(p) { cout << "calling A(int)" << endl; } }; class B ...

3 la respuesta

Mezcla de herencia virtual y no virtual de una clase base

Este es el código: struct Biology { Biology() { cout << "Biology CTOR" << endl; } }; struct Human : Biology { Human() { cout << "Human CTOR" << endl; } }; struct Animal : virtual Biology { Animal() { cout << "Animal CTOR" << endl; } }; struct ...

5 la respuesta

¿Por qué se debe especificar la herencia virtual en medio de una jerarquía de diamantes?

Tengo jerarquía de clases de diamantes: A / \ B C \ / Dara evitar dos copias de A en D, necesitamos usar herencia virtual en B y C. class A { }; class B: virtual public A {}; class C: virtual public A { }; class D: public B, public C { }; ...

4 la respuesta

Herencia virtual en C ++

Encontré esto en un sitio web mientras leía sobre herencia virtual en c ++ Cuando se usa la herencia múltiple, a veces es necesario usar la herencia virtual. Un buen ejemplo de esto es la jerarquía de clases estándar de iostream: //Note: this ...

5 la respuesta

vptr de comprensión en herencia múltiple?

Estoy tratando de dar sentido a la declaración en el libro efectivo c ++. A continuación se muestra el diagrama de herencia para herencia múltiple. Ahora el libro dice que se requiere memoria separada en cada clase para vptr. También hace ...