Resultados de la búsqueda a petición "virtual-inheritance"
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 ...
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 ++ ...
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
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 ...
¿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 ...
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 ...
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 ...
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, ...
¿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 ...