2009-10-15 82 views

回答

12

在要返回一個ostream對象的引用情況。嚴格將&符號作爲「地址」並不總是適合你。 Here的一些信息來自C++ FAQ Lite參考資料。

就const而言,const正確性在C++類型安全性中非常重要,並且您希望儘可能地做到這一點。 FAQ中的另一個page有助於這方面的工作。 const可以幫助您避免副作用相關的更改,在您可能不期望的情況下將數據丟掉。

3

這意味着該變量是一個參考。它有點像指針,但不是真的。

參見:Reference (C++)

3

在C++中的類型聲明,與符號的意思是 「參考」。在這種情況下,operator <<返回對ostream對象的引用。

因爲它實際上返回*this它實際上是同一個ostream對象,意味着你可以鏈接調用operator <<,與此類似:

os << "Hello" << " " << "World" << endl; 
+1

'operator <<'大多數程序員遇到的實現都是自由函數,而不是成員函數,所以不涉及'this'。 – sbi 2009-10-15 12:24:59

6

根據&符號的上下文,它可能意味着2個不同的事物。你的具體問題的答案是它是一個參考,而不是「地址」。他們是非常不同的東西。理解差異非常重要。

C++ Reference

之所以做出參數常量是確保它們不被功能而改變。這保證了函數的調用者不會改變它們傳入的參數。

+0

當你在一個'普通'變量上使用一個&符號時,你正在使用內存中的變量地址 - 這就是Omar的意思。有了引用,&有不同的含義。 – Jesper 2009-10-15 12:34:55

+0

Jesper,你是對的。我更新了我的答案以作出區分。 – nathan 2009-10-15 12:58:54

相關問題