C++ 引用有两个属性:
- 它们总是指向同一个对象。
- 它们不能为 0。
指针则相反:
- 它们可以指向不同的对象。
- 它们可以为 0。
为什么 C++ 中没有“不可为空、可重新定位的引用或指针”?我想不出一个很好的理由为什么引用不应该是可重新安装的。
编辑: 这个问题经常出现,因为当我想确保“关联”(我在这里避免使用“引用”或“指针”这些词)永远不会无效时,我通常会使用引用。
我想我从来没有想过“很棒,这个 ref 总是指同一个对象”。如果引用是可重新安装的,仍然可以得到如下的当前行为:
int i = 3;
int& const j = i;
这已经是合法的 C++,但毫无意义。
我这样重申我的问题: “'引用是对象'设计背后的基本原理是什么?为什么认为引用始终是同一个对象而不是仅在声明为 const 时才被认为是有用的?”
干杯,菲利克斯