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


Ошибка компилятора C2801

Оператор оператора должен быть нестатичным элементом

Замечания

Следующие операторы могут быть перегружены только как нестатические члены:

  • Задание =

  • Доступ к члену класса ->

  • Подстрока []

  • Вызов функции ()

Возможные причины C2801:

  • Перегруженный оператор не является членом класса, структуры или объединения.

  • Объявлен staticперегруженный оператор.

Example

  • В следующем примере генерируется ошибка C2801:
// C2801.cpp
// compile with: /c
operator[]();   // C2801 not a member
class A {
   static operator->();   // C2801 static
   operator()();   // OK
};