我不能在类中的布尔运算符中添加两个或多个参数

Epi*_*101 2 c++ visual-c++ c++11

当我尝试添加bool operator==(complx a, complx b)时说

  |Code      |Description
  |EO344     too many parameters for this operator function
Run Code Online (Sandbox Code Playgroud)

我尝试仅使用一个参数,但无法执行。

这是实际功能:

    //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();
    }
Run Code Online (Sandbox Code Playgroud)

它说参数太多,但我的书说没有。你能帮助我吗?

Nik*_* C. 5

作为成员函数,operator==()必须采用一个参数,即右侧操作数。左侧操作数是this对象。

作为自由的非成员函数实现时,它仅需要两个参数。

请注意,将二进制运算符实现为成员函数时,可能会遇到排序问题。有关详细信息,请参见此答案