[英]Overloading Comparison Operators in 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;
}
}
謝天謝地,你不能。 所有比較運算符對於任何類型的指針都已經具有完善的行為。 除非至少一個參數是用戶定義的類型,否則您不能重載運算符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.