我試圖用一個簡單的結構,地圖鍵:重載<運算符類內部
class Foo{
.
.
.
struct index{
int x;
int y;
int z;
};
bool operator<(const index a, const index b);
.
.
.
}
而且功能itslef:
bool Foo::operator<(const index a, const index b){
bool out = True;
if (a.x == b.x){
if (a.y == b.y){
if (a.z >= b.z) out = false;
}
else if(a.y > b.y) out = false;
} else if (a.x > b.x) out = false;
return out;
}
然而,當我編譯錯誤:
memMC.h:35: error: 'bool Foo::operator<(Foo::index, Foo::index)' must take exactly one argument
據我瞭解這一點,編譯器要比較index
這個Foo
。那我該如何超載操作員呢?
謝謝!這個問題在過去的幾個小時裏一直困擾着我。我沒有想到修復會如此簡單。 – Dennis 2012-05-04 22:36:33