__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.
__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 peut apparaître uniquement dans le corps d'une fonction membre.
__super ne peut pas être utilisé avec une déclaration using. Pour plus d'informations, consultez using, déclaration.
Avec l'introduction des attributs qui injectent du code, celui-ci peut contenir une ou plusieurs classes de base dont vous pouvez ignorer 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