Resultados da pesquisa a pedido "virtual-inheritance"

5 a resposta

compreender o vptr na herança múltipla?

Estou tentando entender a declaração no livro efetivo em c ++. A seguir, é apresentado o diagrama de herança para herança múltipl Agora, o livro diz que é necessária memória separada em cada classe para o vptr. Também faz a seguinte ...

5 a resposta

herança virtual é necessária para exceçõe

Entendo a necessidade de herança virtual ao usar herança múltipla - ele resolve o Problema do Diamante Dreade Mas e se eu não estiver usando herança múltipla? Existe alguma necessidade de herança virtua Parece que me lembro de ouvir que era ...

2 a resposta

Downcast em uma hierarquia de diamantes

Por quêstatic_cast não pode fazer downcast de uma 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 a resposta

unções virtuais estáticas em c ++

Tenho uma classe base e uma derivada e desejo alterar as funções base, mantendo-as estáticas, pois devem ser passadas para outras funções como estática Como eu posso fazer isso

5 a resposta

omo a herança virtual C ++ é implementada nos compiladore

Como os compiladores implementam a herança virtua No código a seguir: class A { public: A(int) {} }; class B : public virtual A { public: B() : A(1) {} }; class C : public B { public: C() : A(3), B() {} };Um compilador gera duas instâncias ...

6 a resposta

Por que o static_cast não pode ser usado para diminuir a conversão quando a herança virtual está envolvida?

Considere o seguinte código: struct Base {}; struct Derived : public virtual Base {}; void f() { Base* b = new Derived; Derived* d = static_cast<Derived*>(b); }Isso é proibido pela norma [n3290: 5.2.9/2]) para que o código não seja compilado, ...

5 a resposta

amanhos @Class com herança virtual em 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; } As respostas seriam dependentes do compilador, ...

1 a resposta

C ++ construtores / destruidores da classe base abstrata - correção geral

Recently Eu sou burro como desenvolvedor, então eu mergulhei, peguei um livro em C ++ e aprendi a fazer as coisas corretamente. Na minha cabeça, eu sei o que gostaria de fazer. Eu efetivamente quero umInterface que, quando herdado, deve ser ...

6 a resposta

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

2 a resposta

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