Resultados da pesquisa a pedido "virtual-inheritance"

2 a resposta

Usando CRTP com herança virtual

Eu tenho uma hierarquia de nós, onde "diamante" pode ocorrer. Cada nó deve ser clonável, mas não quero gravar o método clone em cada nó. Então eu uso o CRTP. class Node { public: Node(){} Node(Fill*) { } virtual ~Node() {} virtual Node ...

2 a resposta

Classe virtual pura e coleções (vetor?)

Estou trabalhando em um aplicativo gráfico que está usando classes virtuais bastante extensivamente. Tem: Uma classe de imagem, que é essencialmente uma coleção de formas. Uma classe de formas, que é puramente virtual e possui algumas classes ...

2 a resposta

Herança virtual: Erro: nenhuma substituição final exclusiva

Eu sei que a herança virtual é abordada aqui antes e antes de fazer essa pergunta, examinei os detalhes da herança virtual e os detalhes de um problema semelhante, como os seguintes: A herança múltipla de diamantes compila sem virtual, mas não ...

7 a resposta

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 = ...

5 a resposta

Herança virtual múltipla em C ++ vs. COM

A rede está transbordando de explicações sobre o"temido problema de diamante" [http://en.wikipedia.org/wiki/Diamond_problem]. O mesmo acontece com StackOverflow. Acho que entendi isso, mas não consigo traduzir esse conhecimento para compreender ...

1 a resposta

Layout de memória de herança virtual C ++

Layouts de memória de herança virtualEstou tentando entender completamente o que está acontecendo na memória com herança virtual e vTables / vPtrs e o que não. Tenho dois exemplos de código que escrevi e entendo exatamente por que ...

5 a resposta

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 { ...

4 a resposta

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 : ...

3 a resposta

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 ...

4 a resposta

Herança virtual em C ++

Encontrei isso em um site enquanto lia sobre herança virtual em c ++ Quando a herança múltipla é usada, às vezes é necessário usar a herança virtual. Um bom exemplo disso é a hierarquia de classes iostream padrão: //Note: this is a simplified ...