内置类型的赋值运算返回对右(还是左??)操作数的引用

x642458 2011-01-04 12:55:25
The return type from the assignment operator should be the same as the return from assignment for the built-in types (Section 5.4.1, p. 160). Assignment to a built-in type returns a reference to its left-hand operand. Therefore, the assignment operator also returns a reference to the same type as its class.

赋值操作符的返回类型应该与内置类型赋值运算返回的类型相同(第 5.4.1 节)。内置类型的赋值运算返回对操作数的引用,因此,赋值操作符也返回对同一类类型的引用。

C++primer 中文版 P411写的是“内置类型的赋值运算返回对操作数的引用”。

“left-hand operand.”这个是做操作数吧,什么情况?
...全文
306 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
flybird1971 2013-04-12
  • 打赏
  • 举报
回复
看来真是翻译错了
haibocui 2012-08-10
  • 打赏
  • 举报
回复
是中文版的翻译错了,不用再怀疑了
zxb708 2011-05-30
  • 打赏
  • 举报
回复
我也遇到和楼主一样的问题。最后通过分析得出结论,可能是primer 4的打印或者翻译错误。
1、从英文原版中直接看出是左操作数的引用;
2、412页的例子显示,返回的是*this,它是对左操作数的引用;
3、因为类的赋值操作符的返回类型应该和内置类型赋值运算返回的类型相同。138指出,复制操作符返回左值,即肯定是返回的左操作数的引用,而不可能返回右操作数的引用(eg: int a = 10)。
hai040 2011-01-04
  • 打赏
  • 举报
回复
估计是打印错误
x642458 2011-01-04
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 hai040 的回复:]

returns a reference to its left-hand operand
left是左,这段话里哪有右了
[/Quote]
可不是,我就认为C++primer 翻译错了.......
hai040 2011-01-04
  • 打赏
  • 举报
回复
returns a reference to its left-hand operand
left是左,这段话里哪有右了
x642458 2011-01-04
  • 打赏
  • 举报
回复
A atmp = b;//这里则不需要返回引用;

类类型的赋值操作符,返回对左操作数的引用.....
所以这里应该返回atmp的*this...

我想问的是,对内置类型,赋值运算返回的是对左操作数还是右操作数的引用?
int a,b,c; a=b=c;
b=c 返回的是b(左操作数)还是c(右操作数)的引用?
x642458 2011-01-04
  • 打赏
  • 举报
回复
  A atmp = b;//这里则不需要返回引用;


类类型的赋值操作符,返回对左操作数的引用,C++Primer原话
所以这里应该返回atmp的*this...

我想问的是,对内置类型,赋值运算返回的是对左操作数还是右操作数的引用?
int a,b,c; a=b=c;
b=c 返回的是b(左操作数)还是c(右操作数)的引用?
futurepi 2011-01-04
  • 打赏
  • 举报
回复
英语看不懂
alfredtofu 2011-01-04
  • 打赏
  • 举报
回复
left-hand operand 是一个操作数,比如A = B,A就是left-hand operand。
那句话的意思是说加入是赋值运算符,那么等号返回的是对B的引用。
例子:
class A {
C/C++ code
class A
{
……
};

int main() {
A b;
A& a = b;//这里,如果重载等号运算符,那么这个返回值应该是A&
A atmp = b;//这里则不需要返回引用;
return 0;
}

64,637

社区成员

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

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