运算符重载问题,求助

mp-ui 2019-11-01 08:52:26
如图一,第11行的参数列表里第二个加上引用之后,第30行会报错。如图二,把&去掉之后,就不会报错了,求原因!!



...全文
133 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
铖邑 2019-11-02
  • 打赏
  • 举报
回复
引用 10 楼 unf的回复:
[quote=引用 8 楼 SuperDay 的回复:]
后置++操作符,你这里是返回值(普通变量),而不是引用,返回到提取操作符<<,实际上是有一个临时变量,这时候传递给一个引用,只能是常引用,否则它无法修改临时变量,语法上认为不能成立。在形参不是引用或者是常引用时候,是允许的。
打字好累,不知道能不能说清楚。
另外,++操作符这样嵌套使用,本人一向鄙视这种写法,没什么好处,就装逼而已。问题你装逼也要有好的技术支撑吧,奉劝初学者不要玩这种文字游戏,好好学编程要紧。不要被那些老师忽悠了,他们除了搞搞这些花样,还能玩出什么名堂?有的用法虽然心里清楚,但绝对不会这样写出来,有时候朴实无华的代码更实用。不知道他们还要误导多少人



"只能是常引用,否则它无法修改临时变量"这句不懂,常引用才无法修改吧[/quote] 临时变量不能修改,所以只能是常引用,或者非引用而是复制变量
mp-ui 2019-11-02
  • 打赏
  • 举报
回复
引用 8 楼 SuperDay 的回复:
后置++操作符,你这里是返回值(普通变量),而不是引用,返回到提取操作符<<,实际上是有一个临时变量,这时候传递给一个引用,只能是常引用,否则它无法修改临时变量,语法上认为不能成立。在形参不是引用或者是常引用时候,是允许的。
打字好累,不知道能不能说清楚。
另外,++操作符这样嵌套使用,本人一向鄙视这种写法,没什么好处,就装逼而已。问题你装逼也要有好的技术支撑吧,奉劝初学者不要玩这种文字游戏,好好学编程要紧。不要被那些老师忽悠了,他们除了搞搞这些花样,还能玩出什么名堂?有的用法虽然心里清楚,但绝对不会这样写出来,有时候朴实无华的代码更实用。不知道他们还要误导多少人



"只能是常引用,否则它无法修改临时变量"这句不懂,常引用才无法修改吧
梨有橙子嘛 2019-11-01
  • 打赏
  • 举报
回复
引用 7 楼 unf的回复:
[quote=引用 6 楼 梨有橙子嘛的回复:][quote=引用 4 楼 unf的回复:][quote=引用 2 楼 梨有橙子嘛 的回复:]
你可以试试const test& 会不会报错

不报错了,求原因[/quote] 或者讲运算符<< 只读数据,强行十个字。。[/quote] 那为什么我把&去掉也行呢[/quote] 你去掉就是局部变量,你修改无所谓的,引用会修改实参的值就是不行,编译机制的问题。。
铖邑 2019-11-01
  • 打赏
  • 举报
回复
后置++操作符,你这里是返回值(普通变量),而不是引用,返回到提取操作符<<,实际上是有一个临时变量,这时候传递给一个引用,只能是常引用,否则它无法修改临时变量,语法上认为不能成立。在形参不是引用或者是常引用时候,是允许的。 打字好累,不知道能不能说清楚。 另外,++操作符这样嵌套使用,本人一向鄙视这种写法,没什么好处,就装逼而已。问题你装逼也要有好的技术支撑吧,奉劝初学者不要玩这种文字游戏,好好学编程要紧。不要被那些老师忽悠了,他们除了搞搞这些花样,还能玩出什么名堂?有的用法虽然心里清楚,但绝对不会这样写出来,有时候朴实无华的代码更实用。不知道他们还要误导多少人
mp-ui 2019-11-01
  • 打赏
  • 举报
回复
引用 6 楼 梨有橙子嘛的回复:
[quote=引用 4 楼 unf的回复:][quote=引用 2 楼 梨有橙子嘛 的回复:]
你可以试试const test& 会不会报错

不报错了,求原因[/quote] 或者讲运算符<< 只读数据,强行十个字。。[/quote] 那为什么我把&去掉也行呢
梨有橙子嘛 2019-11-01
  • 打赏
  • 举报
回复
引用 4 楼 unf的回复:
[quote=引用 2 楼 梨有橙子嘛 的回复:]
你可以试试const test& 会不会报错

不报错了,求原因[/quote] 或者讲运算符<< 只读数据,强行十个字。。
梨有橙子嘛 2019-11-01
  • 打赏
  • 举报
回复
引用 4 楼 unf的回复:
[quote=引用 2 楼 梨有橙子嘛 的回复:]
你可以试试const test& 会不会报错

不报错了,求原因[/quote] 输出流类cout,默认只读,不能修改数据
mp-ui 2019-11-01
  • 打赏
  • 举报
回复
引用 2 楼 梨有橙子嘛 的回复:
你可以试试const test& 会不会报错

不报错了,求原因
mp-ui 2019-11-01
  • 打赏
  • 举报
回复
引用 1 楼 kyh_0914 的回复:
为什么要加&呢,这不是取地址符吗
那是引用吧
梨有橙子嘛 2019-11-01
  • 打赏
  • 举报
回复
你可以试试const test& 会不会报错
kyh_0914 2019-11-01
  • 打赏
  • 举报
回复
为什么要加&呢,这不是取地址符吗

64,637

社区成员

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

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