條款1 c++是乙個多重范型程式語言,我們應該將其視為乙個語言聯邦(同時支援面向過程、物件導向、函式形式、范型形式、源程式設計形式的語言)主要包括四大塊:c語言、物件導向c++、模板c++、stl。
條款2 盡可能用const、enum、inline替換#define
條款3 盡可能使用const
在類的成員函式後面加const表示不允許該函式修改類的資料成員。
在函式引數中使用常量指標時表示在函式中不能改變指標所指向的內容
在函式(返回值)前加const,表示其返回值不可變
當存在同名同引數和返回值的常量函式和非常量函式時,常量物件呼叫常量成員;非常量物件呼叫非常量的成員。
class classa ;
const
char& operator (size_t position) const
// const版本
char& operator (size_t position) // 非const版本
}
改寫為:
class classa ;
const
char& operator (size_t position) const
char& operator (size_t position) // 非const版本通過const版本實現
}
non-const版本呼叫const版本來實現,減少了**的冗餘
條款4 確定物件被使用前已經先被初始化
Git筆記(持續更20190102)
直接記錄快照,而非差異比較 所有操作都是本地執行 保證完整性 獲取 git 倉庫 有兩種取得 git 專案倉庫的方法。第一種是在現有專案或目錄下匯入所有檔案到 git 中 第二種是從乙個伺服器 轉殖乙個現有的 git 倉庫 在現有目錄中初始化倉庫 git init 該命令將建立乙個名為 git 的子...
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 中沒有統一的準則,要按照不同的特性採取不同的使用...