1.如果是類中唯讀函式後面沒有加上const,這樣如果變數定義成const,而函式沒寫成const,這樣編譯期會困惑。
2.相同class的各個物件objects互為友元。
3.建構函式初始化用:,比{}裡面初始化效率更高。
4.函式返回值寫成void時,應該考慮鏈式賦值,如果是void就行不通了。
5.拷貝賦值函式,需要檢測自我賦值。
6.一般函式的變數都有乙個棧存放變數,函式(作用域)結束記憶體自動釋放,但是new是獲取heap,用完自己釋放空間。static變數直到程式結束生命週期才會結束。
7.static函式沒有this pointer,也就只適合使用static變數。
8.函式模板,class與typename互通,沒有區別。
9.explicit關鍵字的作用就是防止類建構函式的隱式自動轉換 c++ explicit關鍵字詳解
10.復合composition-has a。構造由內而外,析構由外而內。
11.虛函式
non-virtual函式:你不希望子類derived class重新定義override它
virtual函式:你希望子類重新定義它,且你對它已經有預設定義
pure virtual函式:你希望子類一定要重新定義它,你對它沒有預設定義
12.namespace的用法
13.類模板
14.仿函式 為什麼要用仿函式?
仿函式(functors) 仿函式的作用:它既能想普通函式一樣傳入給定數量的引數,還能儲存或者處理更多我們需要的有用資訊。
15.uniform initialization 用大括號braces{}統一初始化。
int j{};//j初值就是0
int* p{};//p初值就是nullptr
16.如果定義的建構函式加上explict,那麼for loop自動型別轉換會報錯。 for(const c& elem:vs)
17.拷貝構造不能過載
19.臨時物件就是右值,右值不可以放在左邊。&&是右值語法,是一種指標的拷貝,淺拷貝,但是原指標會作廢。
侯捷 C 標準11 14
本篇記錄學習 侯捷 c 標準11 14 一 演進 環境與資源 1 c 2.0的新特性,包括語言的部分和標準庫的部分。tr1是2003年的版本,即c 1.0。二 variadic templates 1 數量不定的模板引數,引數個數和引數型別都未定。三 spaces in template expre...
侯捷c 物件導向(上)
一 c 程式設計簡介 1 基於物件 只有乙個class的程式設計 object based 物件導向 幾個class的程式設計 object oriented 2 class的經典分類 class without pointer members e.g complex 複數 class with p...
C 侯捷 委託和繼承
物件導向的設計主要是看怎麼組織自己的類。composite是個容器,他既可以放composite也可以放primitive,所以vector中的型別是兩個的父類。同時他就得包含乙個add方法,可以新增composite或primitive。這種結構要解決的問題的解法就是叫做component設計模式...