Partilhar via


Erro do compilador C2803

O operador "operator operator" deve ter, pelo menos, um parâmetro formal do tipo classe

Observações

O operador sobrecarregado não tem um parâmetro do tipo de classe.

Você precisa passar pelo menos um parâmetro por referência (não usando ponteiros, mas referências) ou por valor para poder escrever "a < b" (a e b sendo do tipo classe A).

Se ambos os parâmetros forem ponteiros, será uma comparação pura de endereços de ponteiro e não usará a conversão definida pelo usuário.

Example

O exemplo a seguir gera C2803:

// C2803.cpp
// compile with: /c
class A{};
bool operator< (const A *left, const A *right);   // C2803
// try the following line instead
// bool operator< (const A& left, const A& right);