左值转换和赋值运算符

时间:2016-12-01 15:10:01

标签: c++

帮助我理解赋值运算符=和隐式(标准)转换是如何工作的。

考虑语句a = b;,其中ab是具有不同算术类型的左值(例如int a = 1float b = 3.14)。

据我了解,没有直接的"左值 - 左值" C ++中的隐式转换。我认为这里是隐式转换"左值到右值"发生:编译器创建一个临时浮动prvalue(称之为c)并将b值复制到c。然后我们的编译器进行"浮动 - 积分转换"它创建另一个类型为int的临时prvalue(称为d)(int是a的类型)并转换float {{ 1}}到int c。现在,临时prvalue b的int值为d。最后,编译器将3值复制到变量d,我们得到a

如果我错了,请纠正我。感谢。

0 个答案:

没有答案