Resultados da pesquisa a pedido "virtual-destructor"

1 a resposta

Um destruidor virtual padrão impede operações de movimentação geradas pelo compilador?

Inspirado no postPor que o destruidor desativa a geração de métodos de movimentação implícitos? [https://stackoverflow.com/questions/33932824/why-destructor-disabling-the-generation-of-implicit-move-functions] , Fiquei pensando se o mesmo se ...

8 a resposta

ordem de destruição usando virtual

Alguém pode ajudar qual é a ordem de destruição quando estou usando funções virtuais. Começa com a classe base e depois a classe derivada?

9 a resposta

Existe alguma maneira automatizada de implementar chamadas de método virtual pós-construtor e pré-destrutor?

Devido aos problemas bem conhecidos de chamar métodos virtuais de dentro de construtores e destruidores, geralmente termino com classes que precisam de um mé...

3 a resposta

Uma interface c ++ deve obedecer à regra dos cinco?

Qual é a maneira correta de declarar métodos de instanciação ao definir uma classe de interface? As classes base abstratas são necessárias para ter um destruidor virtual por razões óbvias. No entanto, o seguinte aviso de compilação é ...

15 a resposta

Quando usar destruidores virtuais?

Eu tenho um entendimento sólido da maioria das teorias de OO, mas a única coisa que me confunde muito são os destruidores virtuais. Eu pensei que o destruidor sempre é chamado, não importa o que e para cada objeto na cadeia. Quando você ...

3 a resposta

O padrão é tornar as classes `finais 'ou dar a elas um destruidor virtual?

Classes com destruidores não virtuais são uma fonte de erros se forem usadas como classe base (se um ponteiro ou referência à classe base for usado para se referir a uma instância de uma classe filha). Com a adição do C ++ 11 de umfinal estou ...

5 a resposta

á algum motivo específico para usar destruidores não virtuai

omo eu sei, qualquer classe designada para ter subclasses deve ser declarada com destruidor virtual, para que as instâncias de classe possam ser destruídas corretamente ao acessá-las através de ponteiro Mas por que é possível declarar essa ...

7 a resposta

Por que devo declarar um destruidor virtual para uma classe abstrata em C ++?

Sei que é uma boa prática declarar destruidores virtuais para classes base em C ++, mas é sempre importante declararvirtual destruidores mesmo para classes abstratas que funcionam como interfaces? Forneça alguns motivos e exemplos do porquê.

2 a resposta

desctrutor virtual na classe base abstrata pura

eu tenho struct IMyInterface { virtual method1() = 0; virtual method2() = 0; };O GCC insiste que eu tenho struct IMyInterface { virtual method1() = 0; virtual method2() = 0; virtual ~IMyInterface(){}; };Eu não vejo o porquê. Uma interface pura ...

6 a resposta

Não construtores virtuais, mas destruidor virtual

Se não temos construtores virtuais, por que temos destruidores virtuais? Os construtores também podem ser virtuais?