Microsoft Specific

Allows you to explicitly state that you are calling a base-class implementation for a function that you are overriding.



All accessible base-class methods are considered during the overload resolution phase, and the function that provides the best match is the one that is called.

__super can only appear within the body of a member function.

__super cannot be used with a using declaration. See using Declaration for more information.

With the introduction of attributes that inject code, your code might contain one or more base classes whose names you may not know but that contain methods that you wish to call.


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

END Microsoft Specific

See Also


C++ Keywords