重载操作符返回值的问题

wenhong609 2012-04-12 08:15:13
重载操作符有的返回值是类对象级别的,比如赋值操作符,有的返回的又是类成员级别的,比如下标操作符,到底该怎么确定函数的返回值呢!感觉不怎么好确定啊!有时候完全是乱的!!!
...全文
160 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
lm_whales 2013-02-28
  • 打赏
  • 举报
回复
根据各个运算符的意义确定
lgy6468391 2012-04-12
  • 打赏
  • 举报
回复
无论形参为何种类型,赋值操作符必须定义为成员函数

所以赋值必须返回对 *this 的引用 ,就是类本身。

类定义下标操作符时,一般需要定义两个版本:一个为非 const 成员并返回引用,另一个为 const 成员并返回 const 引用。
Vincent_Song 2012-04-12
  • 打赏
  • 举报
回复
根据需要。
barech 2012-04-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

引用 3 楼 的回复:

赋值操作符是二元操作符;下标操作符是一元操作符。

和返回值的类型有多大的关系!!主要是涉及到用的时候的使用表达式为:类类型对象+操作符,返回值能随便定吗,应该是每个操作符的返回值的类型是固定的吧!!
[/Quote]
参照7楼
深圳大哥 2012-04-12
  • 打赏
  • 举报
回复
对于操作符是否定义为成员函数的建议:
操作符 建议
所有一元操作符 成员
= [] {} -> 必须是成员
+= -= *= /= ^= &= |= %= >>= <<= 成员
所有其它二员操作符 非成员
wenhong609 2012-04-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

赋值操作符是二元操作符;下标操作符是一元操作符。
[/Quote]
和返回值的类型有多大的关系!!主要是涉及到用的时候的使用表达式为:类类型对象+操作符,返回值能随便定吗,应该是每个操作符的返回值的类型是固定的吧!!
wenhong609 2012-04-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

这是固定的.
看你需要 赋值,返回值是本身的引用.
下标操作符,也可以返回 元素的引用,也可以返回 一个新的元素.
一切,皆在于你的需求
[/Quote]
还有那么多的操作符,返回值不是这个就是那个,怎么记啊,比如自增操作符,是对成员进行操作,返回的又是类对象,有点想不明白!!
evencoming 2012-04-12
  • 打赏
  • 举报
回复
这是固定的.
看你需要 赋值,返回值是本身的引用.
下标操作符,也可以返回 元素的引用,也可以返回 一个新的元素.
一切,皆在于你的需求
barech 2012-04-12
  • 打赏
  • 举报
回复
赋值操作符是二元操作符;下标操作符是一元操作符。
maoxing63570 2012-04-12
  • 打赏
  • 举报
回复
还是想想你为什么要重载操作符吧,同时保持跟内置的操作符的语义保持一致就行了
清风似水流 2012-04-12
  • 打赏
  • 举报
回复
不是你自己控制的吗?

64,654

社区成员

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

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