在C++中,通过引用扩展范围是否安全?在C++中,通过引用来扩展范围是否安全?
在代码中,我的意思是:
MyCLass& function badIdea()
{
MyClass obj1;
...
return obj1;
}
在C++中,通过引用扩展范围是否安全?在C++中,通过引用来扩展范围是否安全?
在代码中,我的意思是:
MyCLass& function badIdea()
{
MyClass obj1;
...
return obj1;
}
它是不是安全通过参考扩大范围。当obj1超出范围时,C++中的对象不会被引用计数,它将被删除,引用badIdea()的结果只会让你陷入困境
只有在引用范围内扩展范围才可以namespace
或函数作用域中的const
引用(不包括类成员)。
const int & cir = 1+1; // OK to use cir = 2 after this line
这招在Andrei Alexandrescu's非常凉爽scope guard使用,以捕获const
参照基类的具体范围后卫。
问题是关于C++和参照结合。引用计数不会进入它。我已经添加了自己的答案,但是简要地说,您可以*通过引用绑定来扩展对象的范围,但在您的设计中应该小心。不要这样做,如果你不明白。 – 2008-11-02 17:13:48