【发布时间】:2013-12-07 15:48:51
【问题描述】:
我刚开始学习 C++。我在网上找到了一个建议:“用一本好书学习,它比youtube上的视频更好。”因此,当我有动力并且有时间学习 c++ Primer 5th Ed。
在这本书中,他们说: 注意:“引用不是对象。相反,引用只是已存在对象的另一个名称。”
和: “引用只能绑定到一个对象,而不是文字或更通用表达式的结果”
我明白了:
int i = 3;
int &ri = i; // is valid: ri is a new name for i
int &ri2 = 2; // is not valid: 2 is not an object
那我就不明白为什么了:
const int &ri3 = 2; // is valid
他们写道:“如果能更容易理解复杂的指针或引用声明 你从右到左阅读它们。”
好的,这不是很复杂。我明白: 我声明了一个名为 ri3 的变量, 它是一个引用(当 & 在类型之后是引用,当 & 在表达式中时是地址) 到 int 类型的对象 它是一个常数。
我认为它已经解释了很多次,但是当我在论坛上搜索时,我发现复杂问题的复杂(对我而言)答案,我仍然不明白。
感谢您的帮助。
【问题讨论】:
-
2是您无法更改的文字。const确保引用指向 const 实体,因此您无法更改通过引用引用的对象。 -
"a reference may be bound only to an object, not to a literal or to the result of a more general expression"仅在某些情况下为真。
标签: c++ reference initialization constants