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