【发布时间】:2012-04-14 01:14:28
【问题描述】:
关于引用,我从来没有理解过一件事,希望对我有所帮助。据我所知,引用不能为空。但是如果你有一个函数 foo() 返回一个堆栈对象的引用会发生什么:
Object & foo(){
Object o;
return o;
}
Object & ref = foo();
理论上的 ref 将引用一个不存在的对象,因为一旦函数返回,o 就会超出范围。这里发生了什么?
【问题讨论】:
-
空指针和无效指针不是一回事!
-
澄清一下——没有什么能阻止引用成为
null。你不能直接引用null。 -
即使在实践中,
ref也会指代一个不存在的对象,就像短语“法国现任国王”一样。