| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 384 人关注过本帖
标题:求教运算符重载问题
只看楼主 加入收藏
yew2012
Rank: 1
来 自:湖南
等 级:新手上路
帖 子:30
专家分:2
注 册:2012-11-23
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:8 
求教运算符重载问题
当重载为类的成员函数,第一个操作数会作为函数的目的对象是什么意思啊?这是C++中的语法还是什么啊?可不可以给个清晨一点的解释啊。。。。。。。。。
2012-12-12 16:47
w527705090
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:441
专家分:1882
注 册:2011-6-28
收藏
得分:0 
这个你还是好好看看书或者问下懂得人。。。在这里是很难说清楚的。。。

有心者,千方百计;无心者,千难万难。
2012-12-12 22:01
深藏依旧
Rank: 2
等 级:论坛游民
帖 子:45
专家分:93
注 册:2012-12-8
收藏
得分:7 
运算符重载为类的成员函数  比如() +   =等符号的重载举个例子吧
+的重载  
complex a;
complex b;
complex c= a+b ; (complex是类)

做+运算符重载后 这样的话在编译a+b的时候就相当于a.operator+(b)
做成员函数重载时在类中这样定义:

complex operator+(complex& other)
{
   return complex(this.real+other.real,this.img+other.img);//this指针指向当前对象a  可省略.
}
这个成员函数中的this指针就指向当前对象a(这应该就是“第一个操作数会作为函数的目的对象”的意思)
other为对象b的引用



  

厚积薄发
2012-12-12 22:07
mmmmmmmmmmmm
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:8
帖 子:388
专家分:1809
注 册:2012-11-2
收藏
得分:0 
楼上正解

我们的目标只有一个:消灭0回复!
while(1)
++money;
2012-12-12 22:27
apollo315
Rank: 2
等 级:论坛游民
帖 子:8
专家分:35
注 册:2012-9-11
收藏
得分:3 
    运算符重载为类的成员函数时,可以简单的把类名后的运算符(包括operator)当作函数名,举个例子来说:
a+b;  /*此处a和b为同一个类定义实现的两个对象,要使这个句子能用,必须在类的成员函数中加一个函数,即+运算符的重载。对+运算符重载后,此句中的a+b可以视为对象a(即第一个操作数)调用函数 operator + 而且其参数为对象b(第二个操作数),即a.operator+(b),所谓的“第一个操作数会作为函数的目的对象”意思就是第一个操作数来调用函数,也可以说成使用该函数的就是第一个操作数。 */
2012-12-12 23:01
yew2012
Rank: 1
来 自:湖南
等 级:新手上路
帖 子:30
专家分:2
注 册:2012-11-23
收藏
得分:0 
   大哥们昨晚睡得有点早啊
“第一个操作数会作为函数的目的对象”这是语法么 ??

菜鸟飘过
2012-12-13 10:00
yew2012
Rank: 1
来 自:湖南
等 级:新手上路
帖 子:30
专家分:2
注 册:2012-11-23
收藏
得分:0 
所以今天才回复

菜鸟飘过
2012-12-13 10:01
深藏依旧
Rank: 2
等 级:论坛游民
帖 子:45
专家分:93
注 册:2012-12-8
收藏
得分:0 
这个不是语法问题  应该算是C++默认的操作吧

厚积薄发
2012-12-13 12:01
yew2012
Rank: 1
来 自:湖南
等 级:新手上路
帖 子:30
专家分:2
注 册:2012-11-23
收藏
得分:0 
恩恩  谢啦

菜鸟飘过
2012-12-14 12:35
快速回复:求教运算符重载问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017753 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved