注册 登录
编程论坛 C++教室

求教运算符重载问题

yew2012 发布于 2012-12-12 16:47, 384 次点击
当重载为类的成员函数,第一个操作数会作为函数的目的对象是什么意思啊?这是C++中的语法还是什么啊?可不可以给个清晨一点的解释啊。。。。。。。。。
8 回复
#2
w5277050902012-12-12 22:01
这个你还是好好看看书或者问下懂得人。。。在这里是很难说清楚的。。。
#3
深藏依旧2012-12-12 22:07
运算符重载为类的成员函数  比如() +   =等符号的重载举个例子吧
+的重载  
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的引用



  
#4
mmmmmmmmmmmm2012-12-12 22:27
楼上正解
#5
apollo3152012-12-12 23:01
    运算符重载为类的成员函数时,可以简单的把类名后的运算符(包括operator)当作函数名,举个例子来说:
a+b;  /*此处a和b为同一个类定义实现的两个对象,要使这个句子能用,必须在类的成员函数中加一个函数,即+运算符的重载。对+运算符重载后,此句中的a+b可以视为对象a(即第一个操作数)调用函数 operator + 而且其参数为对象b(第二个操作数),即a.operator+(b),所谓的“第一个操作数会作为函数的目的对象”意思就是第一个操作数来调用函数,也可以说成使用该函数的就是第一个操作数。 */
#6
yew20122012-12-13 10:00
额   大哥们昨晚睡得有点早啊
“第一个操作数会作为函数的目的对象”这是语法么 ??
#7
yew20122012-12-13 10:01
所以今天才回复
#8
深藏依旧2012-12-13 12:01
这个不是语法问题  应该算是C++默认的操作吧
#9
yew20122012-12-14 12:35
恩恩  谢啦
1