Я не могу добавить два или более параметров оператору bool в классе - PullRequest
2 голосов
/ 08 июля 2019

Когда я пытаюсь добавить bool operator==(complx a, complx b), он говорит:

  |Code      |Description
  |EO344     too many parameters for this operator function

Я пытался использовать только один параметр, но я не могу этого сделать.

Вот фактическая функция:

    //boolean operators                          "|Code  |Description
    bool operator==(complx a, complx b) //error: " EO344 too many parameters for this operator function"
    {
        /*error code*/return a.real() == b.real() && a.imag() == b.imag();
    }

Там написано, что параметров слишком много, но моя книга говорит, что их нет.Вы можете мне помочь?

1 Ответ

5 голосов
/ 08 июля 2019

В качестве функции-члена operator==() должен принимать один параметр, который является правым операндом.Левый операнд - это объект this.

Он принимает только два параметра, если реализован как свободная функция, не являющаяся членом.

Обратите внимание, что при реализации бинарных операторов в качестве членафункции вы можете столкнуться с проблемами заказа.Подробнее см. этот ответ .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...