Поделиться через


__super

Блок, относящийся только к системам Майкрософт

Позволяет явно указать, что для переопределяемой функции вызывается реализация из базового класса.

Синтаксис

__super::member_function();

Замечания

На этапе разрешения перегрузки учитываются все доступные методы базового класса, и вызывается функция, которая обеспечивает наилучшее совпадение.

__super может отображаться только в тексте функции-члена.

__super нельзя использовать с объявлением using. Дополнительные сведения см . в разделе "Использование объявления ".

При вводе атрибутов , которые внедряют код, код может содержать один или несколько базовых классов, имена которых могут не знать, но содержащие методы, которые вы хотите вызвать.

Пример

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

Завершение блока, относящегося только к системам Майкрософт

См. также

Ключевые слова