为什么不能重新分配引用的目标对象?

2 c++ language-features reference

如果我理解正确,引用的动机是使"通过引用"工作变得更容易和更清晰,而不必费心使用指针解除引用.但它们本质上是恒定的,它们只能指向单个对象,即使有效地引用是指针并且在技术上可以重新分配.如果引用可以为null,例如在使用之前检查返回的引用是否有效,这似乎也是有益的,但这不是一个特性.

忽略这些功能并呈现功能背后的特殊动机是什么?

Ste*_*sop 5

动机分为两部分:

1)引用在概念上是对象的别名,因此它的行为(尽可能多且有用)就像变量名一样.只要它在范围内,它就引用同一个对象,它总是引用一个对象.所以,不能重新坐下而不是空.

2)为了将参数传递给重载运算符,发明了引用.没有特别需要重新定位这些参数,并且它们当然必须始终引用一个对象,因为运算符总是有操作数(或者只有一个操作数用于一元运算符).适合需要的功能是操作数的别名,这就是为什么引用被设想为别名.

以这种方式构思,他们有其他用途.这些用途中的任何一个都不会从它们可重新占位或无效中受益,以便将概念从对象名称改变.最接近的可能是它们在类中用作非静态数据成员.在这种情况下,它们会干扰诸如复制分配之类的事情,但是再次不清楚参考数据成员在复制分配时应该"应该"如何表现,因此没有明确的方法来处理它.指针将处理引用不能的情况.