Bil*_*ard -1 c++ initialization reference literals variable-assignment
考虑以下:
int ival = 1.01;
int &rval = 1.01; // error: non-const reference to a const value.
int &rval = ival;
rval = 1.01;
Run Code Online (Sandbox Code Playgroud)
&rval到文字值的第一次赋值失败了.如果我注释掉该行代码编译并运行.我理解为什么初始化失败了,但我很困惑为什么rval的赋值在最后一行工作.我认为不允许分配对文字值的引用.
编辑:谢谢你的快速解答.我很想删掉这个以掩饰我的耻辱,但我想我会留在这里,所以其他人都可以指出并笑.
在我自己的辩护中,我正在编写一本书中的练习(C++ Primer),这个问题与参考初始化有关.尽管如此,首先完全忽略了参考点是非常尴尬的.:)
初始化引用后,它是初始化引用的别名.初始化参考后,您无法更改参考引用的内容.但是,您可以更改引用引用的"事物"(如果引用不是const).
最后一行实际上是将变量设置ival为1.01(再次).