在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