操作符重载参数问题

chinaplus 2006-11-16 01:53:12
hi,有个关于操作符重载参数个数问题想请教大家.
一个操作符重载函数,可以是class 的member function 也可以不是class的member function
如生明成friend函数等.发现这两个操作符的重载时候函数的参数个数不一样.
如operator+等.
class A
{
public:
A& operator+(A&);
}

使用操作符定义函数的时候参数只能有1个或者2个,使用标识符定义函数的时候参数可以有n个.
operator+什么时候参数是两个什么时候是一个呢?
...全文
209 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
gen1 2006-11-16
  • 打赏
  • 举报
回复
成员函数一般都是 参数个数为:符号所需操作数-1 ,如+,就是2-1(隐式调用A)
如果是友元函数,以为其本身不属于CLASS,所有没有This 指针,参数个数:=符号所需操作数(显式调用A)
chinaplus 2006-11-16
  • 打赏
  • 举报
回复
如果对这个问题不清楚可以看看
http://www.adintr.com/program/article/05.oper.html
chinaplus 2006-11-16
  • 打赏
  • 举报
回复
谢谢大家.
其实操作符号得重载分为成员函数和friend函数,这个导致了函数参数的个数不一样.这个都是c++规范中定义的.
huangyangman 2006-11-16
  • 打赏
  • 举报
回复
成员函数编译器会加入一个this指针作为函数参数,
healer_kx 2006-11-16
  • 打赏
  • 举报
回复
这个问题好像要看Effective C++把?

64,318

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧