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

5 la respuesta

Es necesaria la herencia virtual para excepciones?

Entiendo la necesidad de herencia virtual cuando uso herencia múltiple: resuelve el temido problema del diamante. ¿Pero qué pasa si no estoy usando herencia múltiple? @Existe alguna necesidad de herencia virtua Me parece recordar haber ...

2 la respuesta

Downcast en una jerarquía de diamantes

Por quéstatic_cast ¿no se puede bajar desde una base virtual? struct A {}; struct B : public virtual A {}; struct C : public virtual A {}; struct D : public B, public C {}; int main() { D d; A& a = d; D* p = static_cast<D*>(&a); //error } g ++ ...

7 la respuesta

Funciones virtuales estáticas en c ++

Tengo una clase base y una derivada y quiero cambiar las funciones base mientras las mantengo estáticas, ya que deberían pasarse a otras funciones como estáticas. ¿Cómo puedo hacer eso

5 la respuesta

Cómo se implementa la herencia virtual de C ++ en los compiladores?

Cómo implementan los compiladores la herencia virtual? En el siguiente código: class A { public: A(int) {} }; class B : public virtual A { public: B() : A(1) {} }; class C : public B { public: C() : A(3), B() {} }; ¿Un compilador genera dos ...

6 la respuesta

¿Por qué no se puede utilizar static_cast para hacer down-cast cuando se trata de una herencia virtual?

Considere el siguiente código: struct Base {}; struct Derived : public virtual Base {}; void f() { Base* b = new Derived; Derived* d = static_cast<Derived*>(b); } Esto está prohibido por el estándar [n3290: 5.2.9/2]) para que el código no se ...

5 la respuesta

Tamaños de clase con herencia virtual en C ++

#include<iostream> using namespace std; class abc { int a; }; class xyz : public virtual abc { int b; }; int main() { abc obj; xyz obj1; cout<<endl<<sizeof(obj); cout<<endl<<sizeof(obj1); return 0; } Las respuestas dependerían del ...

2 la respuesta

C ++ constructores / destructores de clase base abstracta - corrección general

Recientemente soy tonto como desarrollador, así que me lancé, obtuve un libro de C ++ y aprendí a hacer las cosas correctamente. En mi cabeza, sé lo que me gustaría hacer. Efectivamente quiero unInterface que cuando se hereda, debe anularse (si ...

6 la respuesta

Herencia virtual y vtable vacía en la clase base

Hay este código: #include <iostream> class Base { int x; }; class Derived : virtual public Base { int y; }; int main() { std::cout << sizeof(Derived) << std::endl; // prints 12 return 0; }He leído que cuando alguna clase se hereda virtualmente, ...

2 la respuesta

¿Por qué se llama al constructor predeterminado en herencia virtual?

No entiendo por qué en el siguiente código, cuando instanciar un objeto de tipodaughter, el valor por defectograndmother() constructor se llama @ Pensé que o bien elgrandmother(int)e debe llamar al constructor @ (para seguir la especificación ...