为什么允许悬挂参考?

时间:2015-03-01 04:53:09

标签: c++ reference

C ++标准草案陈述

  

存储持续时间类别也适用于参考。该   参考的生命周期是其存储持续时间。

然后

  

之后无法更改引用以引用其他对象   初始化。请注意,处理引用的初始化   与赋值完全不同。论证传递(5.2.2)和   函数值return(6.6.3)是初始化。

与指针不同,指针可以指向不同的内存,但不能说是参考。为什么引用有自己的生命周期?

1 个答案:

答案 0 :(得分:3)

允许销毁引用某个引用的对象,并在其存储位置构造(例如,通过placement-new)另一个对象。只要满足某些要求,原始引用就会再次生效。

引用3.8[basic.life]/7

  

7如果在对象的生命周期结束之后和存储之前   对象占用的是重用或释放的,一个新的对象是   在原始对象占用的存储位置创建,a   指向原始对象的指针,一个引用   引用原始对象,或原始对象的名称   将自动引用新对象,一旦生命周期   新对象已经启动,可以用来操纵新对象,   如果: