如何重載我的運算符,以便我可以比較兩個頂點指針?在C++中重載比較運算符
class graph
{
private:
class vertex;
class edge;
class vertex
{
public:
int index;
int estDistanceToGoal;
int traveledDis;
string location;
這裏是一個當我重載>運算符的例子。 問題是當我有一個頂點對象與頂點指針進行比較時觸發器的這種方法。
bool operator> (vertex* v)
{
cout<<"we did this"<<endl;
return (this->weight > v->weight);
}
這是我用來測試它的一個例子。如果我有一個頂點對象和一個頂點指針進行比較,它只會打印「我們做了這個」。那麼我怎樣才能做到這一點,所以我比較了兩個頂點指針?你能尊重「這個」嗎?
void test()
{
vertex*a = new vertex("wj",5);
vertex*v = new vertex("something",2);
if(a == v)
{
cout<<"what"<<endl;
}
else
{
cout<<"k"<<endl;
}
}
您應該比較頂點本身,即'if(* a <* v)',並定義比較對象以獲取頂點參數。 – Barmar
您不希望能夠通過比較兩個「int」值來比較指向它們的指針,爲什麼您會用'vertex'做不同的操作? – Barmar