Compartilhar via


Erro do compilador C2801

'operator operator' deve ser um membro não estático

Os seguintes operadores só podem ser sobrecarregados como membros não estáticos:

  • Atribuição =

  • Acesso de membros de classe ->

  • Subscrito []

  • Chamada de função ()

Possíveis causas do C2801:

  • O operador sobrecarregado não é uma classe, estrutura ou membro de união.

  • O operador sobrecarregado é declarado static.

  • O exemplo a seguir gera o erro C2801:

// C2801.cpp
// compile with: /c
operator[]();   // C2801 not a member
class A {
   static operator->();   // C2801 static
   operator()();   // OK
};