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

x642458 2011-01-04 12:55:28
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.”这个是做操作数吧,什么情况?
...全文
108 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
shaAbca 2011-01-04
  • 打赏
  • 举报
回复
被赋值后的左
x642458 2011-01-04
  • 打赏
  • 举报
回复
x642458 2011-01-04
  • 打赏
  • 举报
回复
    A atmp = b;//这里则不需要返回引用;

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

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

类类型的赋值构造函数 返回的是对左操作数的引用,所以 A atmp = b 返回的是对atemp的引用(即atmep 的*this).......


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

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

64,685

社区成员

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

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