1、標頭檔案防禦式定義;
2、建構函式定義注意點,引數初始化預設值,初始化列表;
3、函式引數盡量傳引用、返回值返回引用需要視情況而定,如區域性變數一般不返回引用;
4、變數,函式內不改變成員變數,定義成const;
5、友元函式,在類中把全域性函式宣告為友元,改全域性函式可以直接訪問類成員;友元函式在類中宣告只是定義訪問許可權,需要在類外面再次宣告;
6、短小、快速執行的函式盡量定義為inline,是否真正為inline取決於編譯器;
7、建立臨時物件,complex(),為無名物件,使用場景如:return complex(xx,...);
8、操作符過載,可寫成成員函式和非成員函式,
成員函式內不需要寫右值引數,為隱藏指標this;
9、《過載返回引用,為了鏈式寫法,如: cout<10、建立物件,可以不直接呼叫建構函式,如:單例模式;
boolan c 學習筆記之move
前言 c 11提供了move語義,可以大大提高stl的效率。一 move對stl一些容器操作效率的提高 下面幾個圖中分別對vector,deque,multiset進行拷貝構造和move構造的效率對比測試,可以看到move構造比拷貝構造快很多。二 乙個擁有move特性的class mystring ...
Boolan C 第二週學習筆記
第二週的課堂筆記,主要記錄一些以前自己不知道得東西。1.所謂的建構函式的三原則 其實預設情況下,編譯器缺省會提供拷貝構造,拷貝賦值,析構函式,它們所執行的就是預設的賦值與析構操作。並不是所有自定義的類都需要手動去寫這些函式,這次課程提供的乙個典型的情況就是類成員裡有指標時的情況,因為指標new出來的...
Boolan C 第五周學習筆記
1.關於vptr和vtbl 之前的學習已經了解到c 多型主要靠虛函式實現,如果說c 的class在實現上相比c的struct有什麼開銷的話,那麼虛函式表 vtbl 的維護和每個物件例項裡虛表指標 vptr 將是比較明顯的開銷。對於如下三個類 class a virtual void vfunc2 v...