C++面向對象高級編程 第一周 博覽網(wǎng)

1.頭文件中的防御式聲明。例如編寫complex.h? 應該

在開頭寫 ? ? ? ?#ifndef __COMPLEX__ ? ? ? ?#define __COMPLEX__ ? ?結尾? ? #endif

2.如果class中數(shù)據(jù)類型可能不同 ,則直接使用模板。具體做法在class定義前使用template,在class的body內(nèi)使用T來代替類型明。

3.有些短小的函數(shù)可以在class中的body內(nèi)直接定義。在body體內(nèi)定義的函數(shù)默認編譯成inline函數(shù)。具體是夠編譯成inline函數(shù)由編譯器決定。

4.使用構造函數(shù)盡量使用初始化列表進行賦值,此種方式為構造函數(shù)獨有。其他函數(shù)不可使用。

5.singleton模式下將構造函數(shù)放到private中。

6.不使用指針的class一般不需要重寫析構函數(shù)。

7.不需要改變class的成員變量的內(nèi)容函數(shù)應寫為常量成員函數(shù),例double real()const {};因為常量無法調(diào)用非常量成員函數(shù)。所以如果不加const則可能出現(xiàn)常量無法調(diào)用函數(shù)的現(xiàn)象。

8.函數(shù)的參數(shù)傳遞中盡量不使用值傳遞,使用引用傳遞,如果傳遞過去不希望更改參數(shù)則加const進行修飾。

9.如果可以的話函數(shù)的返回值也盡量使用引用,這樣可以提高程序效率。(當返回的值是一個函數(shù)local變量時,則不可以返回引用,因為它會隨著函數(shù)的結束而消失,比如對+號進行重載時,+為全局函數(shù),起返回結果為一個臨時變量,故其返回值不能用引用;而對+=進行重載時,其運算結果要儲存進入左值中,故必須返回引用)

10.友元函數(shù)破壞了class的封裝性,但是卻可以提高程序的效率(友元函數(shù)可以直接調(diào)用class內(nèi)的私有成員變量而不用通過訪問函數(shù)進行訪問從而提高執(zhí)行效率)。相同class的各個object互為friend(友元函數(shù))

11.對于<<? >>操作符函數(shù)的重載必須寫為全局函數(shù),而不能寫成成員函數(shù)。為了保證cout<<i<<y<<endl;為了保證這樣的使用方式,故其返回值必須為引用,即ostream &,因為保證速度,返回不能為void,因為cout<<i運算后還要進行下一個運算,故返回值必須為ostream類。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容