Поделиться через


Ошибка компилятора C2803

Оператор оператора должен иметь по крайней мере один формальный параметр типа класса

Замечания

Перегруженный оператор не имеет параметра типа класса.

Необходимо передать по крайней мере один параметр по ссылке (не с помощью указателей, но ссылок) или по значению, чтобы иметь возможность записи "a" (a < и b типа A).

Если оба параметра являются указателями, это будет чистое сравнение адресов указателя и не будет использовать определяемое пользователем преобразование.

Example

В следующем примере создается 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);