社区
C++ 语言
帖子详情
双目运算符重载 operator==
windxnet
2005-08-12 09:01:14
怎么重载"=="啊.为什么我重载的时候,告诉我说"=="只有一个参数啊?怎么回事啊?能不能重载啊?如果能应该怎么重载呢?谢谢...
...全文
443
14
打赏
收藏
双目运算符重载 operator==
怎么重载"=="啊.为什么我重载的时候,告诉我说"=="只有一个参数啊?怎么回事啊?能不能重载啊?如果能应该怎么重载呢?谢谢...
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xiaocai0001
2005-08-13
打赏
举报
回复
C++中有唯一的三目运算符 ? :
但这个运算符不可以重载!
也不能重载系统没有的运算符,如重载operator **()表示幂运算,因为系统没有**运算
zousoft
2005-08-13
打赏
举报
回复
是这样的,全局方式重载,几元运算就是几个参数,分别对应左右。成员函数方式比全局少一个左参数,这个参数就是类对象了。
同样一元运算,全局方式是一个参数,成员函数方式少一个,也就是没有参数。但是这里有一个比较奇怪的地方,这盛下来的参数不是左对象,而是右对象。举个例子:就是“++a”。这点我一开始也觉得挺奇怪的,但是没办法,死记吧。如果要表示“a++”,需要强行设一个哑元。(一般是int)把单元运算当成双元,其中右对象为毫无意义的哑元。(把我们要的对象强行挤到左边去-_-!)
lxk_cool
2005-08-13
打赏
举报
回复
不能臆造运算符.
重载时,不能改变原有的优先级,结合性,语法结构
windxnet
2005-08-12
打赏
举报
回复
哦.我明白了.谢谢你.那如果运算符是三元的呢?
pyrophile
2005-08-12
打赏
举报
回复
用成员函数重载运算苻的函数参数表中,若运算符是一元的,则参数表为空,此时当前对象 作为运算符的
单操作符;若运算符是二元的,则参数表中有一个操作数,此时当前对象作为此运算符的左操作数,参数表
中的操作数作为此运算符的右操作数.
xiaocai0001
2005-08-12
打赏
举报
回复
你这样写的是成员函数方式,只能有一个参数
bool operator ==(const myPoint &pt);//声明部分
bool myPoint::operator==(const myPoint& pt)
{
if(this->m == pt.m && this->n == pt.n)
return true;
else
return false;
}
友元方式
friend bool operator==(const myPoint &p1,const myPoint &p2);//声明部分,类体内
//实现部分,类体外
bool operator==(const myPoint& p1,const myPoint& p2)
{
if(p1.m==p2.m && p1.n==p2.n)
return true;
else
return false;
}
windxnet
2005-08-12
打赏
举报
回复
==不是把两边的两个变量进行比较后产生一个bool值的吗?偶猜的啊.不对吗?我是想这么写.
bool myPoint::operator==(const myPoint& p1,const myPoint& p2)
{
if(p1.m==p2.m && p1.n==p2.n) return true;
else return false;
}
xiaocai0001
2005-08-12
打赏
举报
回复
bool ==();//这行是什么玩意??
xiaocai0001
2005-08-12
打赏
举报
回复
另外一个参数就是*this传过去的!
windxnet
2005-08-12
打赏
举报
回复
class myPoint
{
public:
myPoint& operator=(const myPoint &p);
friend bool operator==(const myPoint &p1,const myPoint &p2);
bool ==();
int m,n;
};
好像不行,还想问一下.一个参数怎么重载爽目运算符啊?
yhbttfile
2005-08-12
打赏
举报
回复
呵呵,不会的就先依样画瓢~~~
看看人家是怎么写的,拿过来修改修改就OK了。
我写程序的时候其实是很懒的~~
foochow
2005-08-12
打赏
举报
回复
同意一楼
xiaocai0001
2005-08-12
打赏
举报
回复
设你自定义的类是 ClassType
则成员函数方式重载的格式是
bool operator ==(const ClassType ¶);
友元方式重载则是:
friend bool operator ==(const ClassType ¶A, const Class ¶B);
xiaocai0001
2005-08-12
打赏
举报
回复
友元方式重载时有两个参数
成员函数重载时只有一个参数
【C++】类和对象--类中6个默认成员函数(2) --
运算符重载
这里C++给出了一个关键字
operator
,后面加上运算符,称作函数
运算符重载
。然后我们还是通过上面Date d1、d2比较的例子来对此进行说明,例如我们这里将==
运算符重载
:代码语言:javascriptAI代码解释。
C++
operator
重载运算符详解
文章目录Chapter XIV前置拓展 Chapter XIV 前置拓展 C++
operator
重载运算符的作用: 主要是代替成员函数的方式为自建类型完成基本任务 当然, 用成员函数完全可以代替
operator
的功能, 但是使用起来绝对没有
operator
方便
operator
重载运算符方式: 既然是用于自建类型的运算, 则其可以有两种定义方式: 作为自建类型的成员函数, 定义在类的内部...
operator
重载运算符
C++已经为基本类型和标注库中的数据类型提供了运算符操作,我们自定义数据类型的话有时就需要重载运算符实现自定义函数来实现类似功能了,此时可以把
operator
==、
operator
=、
operator
*等操作符整体看作一个函数名。 一、单目运算符++/--(以++为例) 1、重载为类的成员函数 假设obj表示对象,func为成员函数,那么func的前置重载形式 func obj 相当于 obj.
operator
func(),无形参。前置++运算符表示先自增1然后返回对象本身,那么针对前置++就是+
C++读书笔记之重载
双目
运算符 Cplusplus overload binary
operator
Overloading binary
operator
s You overload a binary unary
operator
with either a nonstatic member functionthat has one parameter, or a nonmember function that has two parameters. Supposea binary ope
c++(重载
双目
运算符)
重载加法运算符,实现对象的直接加法运算。例如,下面这个feetinches类: class FeetInches { private: int feet; int inches; //对feet和inches的值进行调整 void simplify(); public: FeetInches(int f=0, int i=0) { ...
C++ 语言
65,213
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章