关于赋值操作符

asst2003 2008-03-15 10:33:27
是不是内置类型的赋值表达式返回右操作数的引用,而类的赋值操作符返回左操作数(*this)的引用?
...全文
197 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
asst2003 2008-03-15
  • 打赏
  • 举报
回复
按中文版第138页第14行的说法,内置类型赋值返回左操作数的引用,原文如下:
int ival,jval;
ival=jval=0;
上述表达式,将右边赋值操作的结果(也就是jval)赋给ival.

劣质翻译害死人啊:)
paidfighting 2008-03-15
  • 打赏
  • 举报
回复
那对照原文看吧。。
asst2003 2008-03-15
  • 打赏
  • 举报
回复
呵呵,看来是翻译错误。这本书第四部分翻译的语句不通顺,表达不清晰,含含糊糊,拖泥带水。和前几部分反差极大,看来译者们的水平不是一个级别吧。很烦的是刚好第四部分是关键:(
paidfighting 2008-03-15
  • 打赏
  • 举报
回复
原文是:
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.

其中第二句
Assignment to a built-in type returns a reference to its “left-hand” operand.


汗。。。。
hastings 2008-03-15
  • 打赏
  • 举报
回复
13章 复制控制
13.2 赋值操作符
13.2.1介绍重载赋值
paidfighting 2008-03-15
  • 打赏
  • 举报
回复
。。。第几章第几节?
hastings 2008-03-15
  • 打赏
  • 举报
回复
我翻了一下c++primer4的书,书上的确是这么写的.
不知是不是翻译错误;谁有英文版,去翻一下看看.
另外,这句话的后面还有一句,着重是那句.
asst2003 2008-03-15
  • 打赏
  • 举报
回复
楼上的意识是:内置类型的赋值表达式返回右值,而类的赋值操作符返回左操作数(*this)的引用?
asst2003 2008-03-15
  • 打赏
  • 举报
回复
但在c++primer4中文版的411页中的倒数第十行说:内置类型的赋值运算返回对右操作数的引用

是原书错了,还是翻译错了 ,或者是我理解错了
Treazy 2008-03-15
  • 打赏
  • 举报
回复
左操作数?右操作数?
左值?右值?

paidfighting 2008-03-15
  • 打赏
  • 举报
回复
都是左操作数,否则就不叫复制赋值了。。
paidfighting 2008-03-15
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 asst2003 的回复:]
"将右边赋值的结果(也就是jval)赋给ival"
我想lippman要表达的意思有两个:
1:jval=0这个赋值操作表达式返回左操作数的引用(在这里是jval本身)
2:"="操作符是右结合的,即在一个连续赋值的表达式里是从右到左结合的

我说的劣质翻译不是说这里翻译错了,是说最上面的那句“ 在c++primer4中文版的411页中的倒数第十行说:内置类型的赋值运算返回对右操作数的引用”,这里应该译为:返回左操作数的引用。刚好译反了,…
[/Quote]

嗯。。。鄙视之 ^_^
asst2003 2008-03-15
  • 打赏
  • 举报
回复
"将右边赋值的结果(也就是jval)赋给ival"
我想lippman要表达的意思有两个:
1:jval=0这个赋值操作表达式返回左操作数的引用(在这里是jval本身)
2:"="操作符是右结合的,即在一个连续赋值的表达式里是从右到左结合的

我说的劣质翻译不是说这里翻译错了,是说最上面的那句“ 在c++primer4中文版的411页中的倒数第十行说:内置类型的赋值运算返回对右操作数的引用”,这里应该译为:返回左操作数的引用。刚好译反了,估计是翻译者粗心的缘故,呵呵
paidfighting 2008-03-15
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 asst2003 的回复:]
按中文版第138页第14行的说法,内置类型赋值返回左操作数的引用,原文如下:
int ival,jval;
ival=jval=0;
上述表达式,将右边赋值操作的结果(也就是jval)赋给ival.

劣质翻译害死人啊:)
[/Quote]

前面是对的啊

前面是在讲=是“右结合”的吧

这里没错

64,671

社区成员

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

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