社区
C++ 语言
帖子详情
双目运算符重载 operator==
windxnet
2005-08-12 09:01:14
怎么重载"=="啊.为什么我重载的时候,告诉我说"=="只有一个参数啊?怎么回事啊?能不能重载啊?如果能应该怎么重载呢?谢谢...
...全文
417
14
打赏
收藏
双目运算符重载 operator==
怎么重载"=="啊.为什么我重载的时候,告诉我说"=="只有一个参数啊?怎么回事啊?能不能重载啊?如果能应该怎么重载呢?谢谢...
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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++程序设计
运算符重载
实验(一)
C++程序设计实验——
运算符重载
,涉及单目、
双目
运算符的重载
C++
运算符重载
详细介绍PPT
详细介绍 C++
运算符重载
的PPT 文中部分内容: 下标运算符“[ ]”重载 C++把下标运算符[ ]看成一个
双目
运算符,其操作数为和,对应的运算符为
operator
[ ],必须重载为一个成员函数。对于下标
运算符重载
定义形式如下: 类型 类名::
operator
[ ](形参) {函数体} 先看一个例子7.13 说明: 重载下标运算符“[]”的一个优点是可以增加C++中数组检索的安全性 重载下标运算符“[]”时,返回一个int的引用,所以可使重载“[]”用在赋值语句的左边。
运算符重载
的基本内容
C++语言中预定义的运算符的操作对象只能是基本数据类型,但是,在实际应用中,对于很多用户自定义数据类型(如类)也需要类似的功能,这就需要对已有的运算符赋予多种含义,使同一个运算符具有作用于不同类性的数据导致不同类型的行为,这就是
运算符重载
。因此,
运算符重载
的目的是设置C++语言中的某一运算符,让它们之间并不冲突,C++语言会根据运算符的位置辨别应使用哪一种功能进行运算。可见,
运算符重载
的优点是允许改变使用于系统内部的运算符的操作方式,以适应用户新定义类型的类似运算。
运算符重载
示例适用于新手
运算符重载
示例,更适用于新手的练习,高手不用看!
实验7 多态性和
运算符重载
.doc
多态性和
运算符重载
C++ 语言
65,186
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章