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