双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

== 运算符重载结果不是想要的

sunrisefe sunrisefe 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
写了两个类都用于了==重载,但是调用时不相等的对象也判断为相等了,不知道怎么回事
class Point
{
public:
float x;
float y;
public:
Point(void);
public:
~Point(void);

Point(float x,float y);
// 两点是否相等
bool operator==(const Point p)const;
};
//两点是否相等
bool Point::operator==(const Point p)const
{
if(this->x==p.x && this->y==p.y)
return true;
else
return false;
}



class Edge
{

public:
Edge(void);
Edge(Point p1,Point p2);
bool operator==(const Edge e)const;
public:
~Edge(void);
public:
// 标识该边是否为边界
bool flag;
Point p1;
Point p2;
};
//两条边相等
bool Edge::operator==(const Edge e)const
{
if((this->p1==e.p1 && this->p2==e.p2)||(this->p1==e.p2 && this->p2==e.p1))
return true;
else
return false;
}


调用Edge对象的==时,不相等边如Edge( Point(1,15),Point(0,16))==( Point(1,15),Point(3,16))返回结果为真,调用堆栈中的内容却发现:this对象的p1=(1,15),p2=(3,16)而不是(1,15),(0,16)。这是怎么回事
...全文

相关推荐

C++ 重载运算符+==-用于字符串的比较

C++ ,VS2010平台编辑,下载后可以直接使用,模拟打分及求平均分的过程

lwy0408

C++之操作符重载探究(七):==运算符重载

前文:C++之操作符重载探究(六):重载函数调用符( ) == 运算符重载   在很多情况下,我们需要判断两个对象是否相等,需要对==运算符进行重载。 例1: //小问学编程 #include<iostream> using namespace std; class Person { public: Person(string name,int age) { m_name=name; m_age=age; } bool ope.

一只野生的善逸

C++运算符重载规则详解

主要介绍了C++运算符重载规则详解,是C++入门学习中的基础知识,需要的朋友可以参考下

weixin_38691220

详解C++ 重载运算符和重载函数

C++ 允许在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载。 重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但是它们的参数列表和定义(实现)不相同。 当您调用一个重载函数或重载运算符时,编译器通过把您所使用的参数类型与定义中的参数类型进行比较,决定选用最合适的定义。选择最合适的重载函数或重载运算符的过程,称为重载决策。 C++ 中的函数重载 在同一个作用域内,可以声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同。您不能仅通过返回类型的不同来重载函数。 下面的实例中,同名函数 print() 被

weixin_38682790

C++ 重载运算符和重载函数

C++ 重载运算符和重载函数 C++ 允许在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载。 重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但是它们的参数列表和定义(实现)不相同。 当您调用一个重载函数或重载运算符时,编译器通过把您所使用的参数类型与定义中的参数类型进行比较,决定选用最合适的定义。选择最合适的重载函数或重载运算符的过程,称为重载决策。 C++ 中的函数重载 在同一个作用域内,可以声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同。您不能仅通过返回类型的不同来重载函数。 下面的实例中

weixin_38723027
评论 22
收藏 已收藏
分享
返回顶部
sunrisefe
C++ 语言 65,214 成员 250,514 内容