Condividi tramite


Errore del compilatore C2803

'operator operator' deve avere almeno un parametro formale di tipo classe

L'operatore di overload non dispone di un parametro di tipo classe.

È necessario passare almeno un parametro per riferimento (non usando puntatori, ma riferimenti) o per valore per poter scrivere "a < b" (a e b essere di tipo A).

Se entrambi i parametri sono puntatori, sarà un confronto puro degli indirizzi del puntatore e non userà la conversione definita dall'utente.

L'esempio seguente genera l'errore 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);