photo
+ Responder ao Tópico
Resultados de 1 a 1 de 1

Thread: Funções Virtuais (Modificador override)

  1. #1 Fechar a publicação
    Senior Member jssuser's Avatar jssuser's Avatar
    Data de afiliação
    Aug 2018
    Postagens
    1,503
    Obrigado
    209
    Agradecimentos 1,579 Tempos em 856 Postagens
    AssinarAssinar
    subscritar: 0

    Funções Virtuais (Modificador override)

    O modificador override indica que a função declarada deve substituir o método da classe pai. O uso deste modificador permite evitar erros durante as substituições, por exemplo, durante uma alteração aleatória na assinatura do método. Ou, por exemplo, na classe base, está definido o método func, ele é usado como argumento da variável do tipo int:

    class CFoo
    {
    void virtual func(int x) const { }
    };

    A seguir, o método é substituído na classe que está sendo herdada:

    class CBar : public CFoo
    {
    void func(short x) { }
    };

    No entanto, no caso de haver um erro, o tipo de argumento é alterado de int para short. De fato, aqui acontece uma sobrecarga do método. Agindo em conformidade com o algoritmo de estabelecimento da função sobrecarregada, em determinadas situações, o compilador pode selecionar o método definido na classe base, em vez de escolher o método de substituição.

    Para evitar esses erros, é necessário adicionar o modificador override ao método de substituição.

    class CBar : public CFoo
    {
    void func(short x) override { }
    };

    Se, durante a substituição, for alterada a assinatura do método, o compilador não conseguirá encontrar, na classe pai, o método com essa mesma assinatura e emitir o erro de compilação:

    'CBar::func' method is declared with 'override' specifier but does not override any base class method

    Though trading on financial markets involves high risk, it can still generate extra income in case you apply the right approach. By choosing a reliable broker such as InstaForex you get access to the international financial markets and open your way towards financial independence. You can sign up here.


  2. The Following User Says Thank You to jssuser For This Useful Post:

    Não registrado (1 )

+ Responder ao Tópico

Permissões de postagens

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts