我想超载operator==
,但是编译器抛出以下错误:重载==操作符抱怨“必须只有一个参数”
‘bool Rationalnumber::operator==(Rationalnumber, Rationalnumber)’ must take exactly one argument
我的一小段代码如下:
bool Rationalnumber::operator==(Rationalnumber l, Rationalnumber r) {
return l.numerator() * r.denominator() == l.denominator() * r.numerator();
}
声明:
bool operator==(Rationalnumber l, Rationalnumber r);
没有人有,为什么它抛出牛逼任何想法他错误?
这可能有助于:http://stackoverflow.com/questions/4421706/operator-overloading。既然你是一个成员,它已经让左侧通过隐藏的'this'参数隐式进入。 – chris
您必须用一个ar定义成员函数gument或带两个参数的文件范围函数。 – harper
它是会员功能还是独立功能? –