[英]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.