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 ...
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 ...
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 ...
¿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 ...
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, ...
¿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 = ...
C ++ no puede convertir de la base A al tipo B derivado a través de la base virtual A
Tengo tres clases: class A {}; class B : virtual public A {}; class C : virtual public A {}; class D: public B, public C {};Al intentar un reparto estático de A * a B * obtengo el siguiente error: cannot convert from base A to derived type B ...
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
En C ++, ¿qué es una clase base virtual?
Quiero saber que a "clase base virtual"Es y lo que significa.Déjame mostrarte un ejemplo: