連續賦值語句a=b=c優先順序為從右到左。
為什麼返回乙個referenceto *this指標要比返回其它型別好?
如果返回類物件,b=c呼叫一次拷貝建構函式,返回乙個臨時變數,a=b又呼叫一次賦值拷貝函式。浪費了拷貝時間。
大概目的是防止同時delete物件後,出現的異常。
建議:copying函式應該確保賦值「物件內的所有成員變數」及「所有base class成分」。
不要嘗試以某個copying函式實現另乙個copying函式。應該講共同技能放進第三個函式中,並由兩個copying函式共同呼叫。
auto_ptr:字面意思自動指標,被銷毀時會自動刪除它所指之物。
tr1::shared_ptr:shared分享,計數行指標,指向同乙個物件。共享指標。
建議:為防止資源洩露,請使用raii(資源取得實際便是初始化時機)物件,它們在建構函式中獲得資源並在析構函式中釋放資源。
兩個常被使用的raiiclasses分別是tr1::shared_ptr()和auto_ptr。前者通常是較佳選擇,因為其copy行為比較直觀。若選擇auto_ptr,複製動作會使它指向null。
Effective C 學習筆記
學習effective c 已經有相當長的一段時間了,今天抽出時間又堵了一遍第一部分 c語言 c 以c語言為基礎,幾乎支援所有的c語言成分,例如區塊 語句 預處理 內建資料型別 陣列 指標等,c語言的侷限是 沒有模板 沒有異常 沒有過載 物件導向的c 也就是加上了物件特性的c,類 封裝 繼承 多型 ...
Effective C 學習筆記
1 c 是乙個複合式的語言 c 中不同部分有著不同的語言特性,例如 1.1 在c中傳遞形參時,按照值傳遞比按照指標傳遞效率更高 1.2 在物件導向程式中,物件要按照const引用而不是按照值傳遞 1.3 在stl程式設計中採取按照值傳遞方式 所以說c 中沒有統一的準則,要按照不同的特性採取不同的使用...
effective c 學習筆記
如果不考慮應用程式的使用場合,僅僅考慮語言的靈活性,我贊成作者的想法。但是不同的應用它會有不同的效能要求,所以語言的選擇,應該是用 最適合 條款去選擇。使用巨集定義常量,若定義在標頭檔案中,則所有包含標頭檔案的都可以使用。巨集定義,在預處理的時候進行替換。巨集定義一些簡單的函式,可以減少呼叫開銷,但...