C++ 重载操作符操作数的理解

[复制链接]
查看11 | 回复4 | 2012-2-17 13:59:54 | 显示全部楼层 |阅读模式
比如a+b 中的加号,操作数有两个,a和b。但是在类中重载加号时,只需要一个参数作为操作数就行了,另外一个就是类本身(this)class a{int m_n;a& operator +(b t){ this->m_n=this->m_n+ t.m_n; return *this}};//其中参数t就是一个操作数,另外一个操作数就是this...
回复

使用道具 举报

千问 | 2012-2-17 13:59:54 | 显示全部楼层
对象a调用重载操作符+,参数为对象b,那么写起来就是a+b哪怕a, b的数据类型是功夫熊猫,它们也可以相加。至于结果,那是你在重载操作符+中定义了的。在这里,你可以将重载的“+”理解为一个函数,它的参数只有一个,就像刚才的b,谁调用了它呢?a。 如果你觉“+”应该有两个操作数才对(就像3+4中的3和4),那么被重载的操作符实际上是符合你的猜想的,...
回复

使用道具 举报

千问 | 2012-2-17 13:59:54 | 显示全部楼层
A + B 成员重载就被自动转换为A.operator +(B)注意这个函数是类的成员函数,而成员函数本身就自带了一个隐含参数this用来操作调用该函数的对象的数据成员啊...
回复

使用道具 举报

千问 | 2012-2-17 13:59:54 | 显示全部楼层
atqq...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行