Resultados da pesquisa a pedido "virtual-inheritance"
Misturando herança virtual e não virtual de uma classe base
Este é o 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 ...
erança virtual e vtable vazia na classe ba
Existe 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; } Li que quando alguma classe é virtualmente herdada, ...
Herdar de múltiplas implementações parciais de uma classe base abstrata?
É possível ter um número deimplementações parciais de uma interface abstrata e, em seguida,coletar estas implementações parciais em umaula de concreto único ...
Como a herança virtual resolve a ambiguidade do "diamante" (herança múltipla)?
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 ++ não pode converter da base A para o tipo B derivado via base virtual A
Eu tenho três classes: class A {}; class B : virtual public A {}; class C : virtual public A {}; class D: public B, public C {};Tentando uma conversão estática de A * para B *, recebo o erro abaixo: cannot convert from base A to derived type B ...
Herança virtual não quebra composição estática?
Eu estava trabalhando nos últimos 5 anos com a suposição de que a herança virtual quebra a composição estática. Mas agora eu descobri que a composição estática ainda é mantida, há apenas informações adicionais sobre o local da instância correta. ...
Ordem de criação de classes base virtuais
Eu tenho o seguinte 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, "; } ...
Por que o construtor Default é chamado de herança virtua
Não entendo por que, no código a seguir, quando instanciamos um objeto do tipodaughter, o padrãograndmother() construtor é chamado? Eu pensei que ograndmother(int) construtor deve ser chamado (para seguir a especificação do meumother construtor ...
Chamando o Construtor Sobrecarregado de uma Classe Base Virtual
Existe uma maneira (prática) de ignorar a ordem de chamada do construtor normal (virtual)? Exemplo: 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 : ...
Por que a herança virtual precisa ser especificada no meio de uma hierarquia de diamantes?
Eu tenho hierarquia de classes de diamante: A / \ B C \ / DPara evitar duas cópias de A em D, precisamos usar herança virtual em B e C. class A { }; class B: virtual public A {}; class C: virtual public A { }; class D: public B, public C { ...