Compartir a través de


Error del compilador C2803

"operator operator" debe tener al menos un parámetro formal de tipo de clase

El operador sobrecargado carece de un parámetro de tipo de clase.

Debe pasar al menos un parámetro por referencia (no usando punteros, sino referencias) o por valor para poder escribir "a < b" (a y b son de la clase de tipo A).

Si ambos parámetros son punteros, será una comparación pura de direcciones de puntero y no usará la conversión definida por el usuario.

El ejemplo siguiente genera el error 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);