Partager via


Erreur du compilateur C2803

'L’opérateur operator' doit avoir au moins un paramètre de type classe

L’opérateur surchargé ne dispose pas d’un paramètre de type de classe.

Vous devez passer au moins un paramètre par référence (pas à l’aide de pointeurs, mais de références) ou par valeur pour pouvoir écrire « a < b » (a et b étant de type classe A).

Si les deux paramètres sont des pointeurs, il s’agit d’une comparaison pure des adresses de pointeur et n’utilise pas la conversion définie par l’utilisateur.

L’exemple suivant génère l’erreur 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);