C++中重载运算符operator前面加&和不加&怎么区分

别了过去 2011-09-16 04:46:52
C++中重载运算符加&是什么意思?如定义了一个类Date,则有Date&operator(int m),其中的&表示什么?但是我发现有时候并不加& ,例如 Complex Complex::operator+(Complex &c2),这些&怎么区分啊。
...全文
2105 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lmj1988_perfect 2011-09-16
  • 打赏
  • 举报
回复
看看引用你就明白了。。。
geochway 2011-09-16
  • 打赏
  • 举报
回复 3
加了&之后,就可以作为左值进行赋值操作了。
比如对A重载[]操作,加&之后,可以实现 A[i]=v;这样的操作目的。
pengzhixi 2011-09-16
  • 打赏
  • 举报
回复
你先理解下引用的概念吧。
tony2278 2011-09-16
  • 打赏
  • 举报
回复 1
Date& operator()(int m) 重载运算符返回本身
Complex Complex::operator+(Complex &c2)
没加&表示返回的东西是一份拷贝
PG 2011-09-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dizuo 的回复:]

Date& operator()(int m) 重载运算符返回Date& 这个是引用类型。
不加&表示返回对象,
[/Quote]
++


去看看引用是什么。

看看《c++ primer》有操作符重载建议。
limang89 2011-09-16
  • 打赏
  • 举报
回复
普通函数也一样。。。
limang89 2011-09-16
  • 打赏
  • 举报
回复
看你想返回什么了。。。。
ryfdizuo 2011-09-16
  • 打赏
  • 举报
回复
Date& operator()(int m) 重载运算符返回Date& 这个是引用类型。
不加&表示返回对象,

64,682

社区成员

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

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