Object & foo(){ Object o; return o; } Object & ref = foo();
理论引用将引用一个不存在的对象,因为一旦函数返回,o就会超出范围.这里发生了什么事?
实现方面,实际上,引用将指向堆栈,其中用于调用foo的堆栈帧曾经是.在许多情况下,这种记忆仍然有意义,因此错误通常不会立即显现出来.因此,你应该注意不要像这样做一个悬垂的参考.