当前位置:  开发笔记 > 编程语言 > 正文

为什么我可以在C++中为文字值分配现有引用?

如何解决《为什么我可以在C++中为文字值分配现有引用?》经验,为你挑选了2个好方法。

考虑以下:

int ival = 1.01;
int &rval = 1.01; // error: non-const reference to a const value.
int &rval = ival;

rval = 1.01;

&rval到文字值的第一次赋值失败了.如果我注释掉该行代码编译并运行.我理解为什么初始化失败了,但我很困惑为什么rval的赋值在最后一行工作.我认为不允许分配对文字值的引用.

编辑:谢谢你的快速解答.我很想删掉这个以掩饰我的耻辱,但我想我会留在这里,所以其他人都可以指出并笑.

在我自己的辩护中,我正在编写一本书中的练习(C++ Primer),这个问题与参考初始化有关.尽管如此,首先完全忽略了参考点是非常尴尬的.:)



1> casperOne..:

ival不是字面值,1.01是字面值.它被复制到ival一个变量,它绝对可以将它的引用分配给另一个变量.



2> Michael Burr..:

初始化引用后,它是初始化引用的别名.初始化参考后,您无法更改参考引用的内容.但是,您可以更改引用引用的"事物"(如果引用不是const).

最后一行实际上是将变量设置ival为1.01(再次).

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有