__super

Section spécifique à Microsoft

Permet de déclarer explicitement que vous appelez une implémentation de classe de base pour une fonction que vous substituez.

Syntaxe

__super::member_function();

Notes

Toutes les méthodes de classe de base accessibles sont considérées pendant la phase de résolution de surcharge, et la fonction qui fournit la meilleure correspondance est celle qui est appelée.

__super ne peut apparaître qu’au sein du corps d’une fonction membre.

__super ne peut pas être utilisé avec une déclaration using. Pour plus d’informations, consultez La déclaration .

Avec l’introduction d’attributs qui injectent du code, votre code peut contenir une ou plusieurs classes de base dont vous ne connaissez peut-être pas les noms, mais qui contiennent des méthodes que vous souhaitez appeler.

Exemple

// 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)
   }
};

FIN de la section spécifique à Microsoft

Voir aussi

Mots clés