__super

Seção específica da Microsoft

Permite que você indique explicitamente que está chamando uma implementação da classe base para uma função que está substituindo.

Sintaxe

__super::member_function();

Comentários

Todos os métodos acessíveis da classe base são considerados durante a fase de resolução de sobrecarga e a função que fornece a melhor correspondência é a chamada.

__super só pode aparecer dentro do corpo de uma função membro.

__super não pode ser usado com uma declaração using. Confira Declaração using para mais informações.

Com a introdução de atributos que injetam código, seu código pode conter uma ou várias classes base cujos nomes você pode não saber, mas que contêm métodos que você deseja chamar.

Exemplo

// deriv_super.cpp
// compile with: /c
struct B1 {
   void mf(int) {}
};

struct B2 {
   void mf(short) {}

   void mf(char) {}
};

struct D : B1, B2 {
   void mf(short) {
      __super::mf(1);   // Calls B1::mf(int)
      __super::mf('s');   // Calls B2::mf(char)
   }
};

Fim da seção específica da Microsoft

Confira também

Palavras-chave