我想超載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
它是會員功能還是獨立功能? –