讀書筆記 Effective C

2022-03-01 14:18:00 字數 516 閱讀 1119

這個條款很簡單的說,先解釋一下為什麼賦值後還要有返回值,這是因為我們可以這樣用連等:

1

intx, y, z;

2 x = y = z;

注意等號是右結合的,所以上述運算實際上等同於:

x = (y = z);

如果沒有返回值,上述**就不能通過編譯。

至於為什麼返回的是乙個引用,這並不是編譯器強制的,但有三個原因讓你覺得這樣做是明智的:

(1)     返回引用可以節省資源,不必要為返回值呼叫建構函式了;

(2)     形如(x = y) = 3這樣的連等,編譯器也能接受了,因為這樣的寫法要求賦值運算子返回的是可以修改的左值;

(3)     stl和boost庫中的標準**都是這樣寫的,為了與它們相相容,還是放棄你的標新立異吧

類似地,+=、-=等與賦值相關的運算,最好也返回自身的引用。

一句話:令賦值操作符返回乙個reference to *this

《effective C 》讀書筆記

1,c 關鍵字explicit c 中,乙個引數的 建構函式 或者除了第乙個引數外其餘引數都有預設值的多參建構函式 承擔了兩個角色。1 是個 構造器,2 是個預設且隱含的型別轉換操作符 所以,有時候在我們寫下如 aaa 這樣的 且恰好 的型別正好是aaa單引數構造器的引數型別,這時候 編譯器就自動呼...

Effective C 讀書筆記

一 讓自己習慣c 1 條款01 視c 為聯邦語言 c 的組成可分為四部分 1.c c 仍然以c語言為基礎。區塊 語句 預處理 內建資料型別 陣列 指標等都來自c。2.object oriented c c with classes所訴說的 classes 包括構造和析構 封裝 繼承 多型 virtu...

讀書筆記 Effective C

部分條款過於深奧,部分條款已了然於心,僅記錄當下所識所學 對於常量巨集定義,最好用const代替 define 對於函式巨集定義,最好用inline代替 define include ifdef ifndef仍被需要 內建物件記得手動初始化 使用成員初始列替換賦值操作 以local static替換...