
——回傳區域變數的參考或者指標是錯誤的,回傳值是正確的,因為它會回傳一個副本;
——成員函式指標是強型別的,進行轉換是需要顯示轉換,靜態成員函式可以直接用普通函式指標來存取;
——靜態成員函式不能使用virtual、const、volatile修飾,靜態函式是類的不存在虛函式表所以不能是virtual的(其他兩個不知道為什么);
——靜態成員函式只能操作類變數,沒有this指標;
——dynmaic_cast只支持指標和參考的型別轉化,且做運行時型別檢測,其他轉化不會;
——sizeof的結果與位元組對齊和pack有關;
——sizeof一個空的類結果是1;
——下面代碼只能解決重復包含,不能解決重復定義;
#ifndef MACRO#define MACRO#endif
——goto是個好東西;
——模版的export關鍵字不被支持,分離定義模型不被支持;
——boost庫很好用,但是很容易用錯;
——自己不能確定的運算子優先級就用括號吧;
——string::c_str()回傳的是const char*;
——inline是給編譯器的建議,函式放在頭檔案中并在定義時添加,在類宣告時直接寫的方法體,等同與添加了inline行內;
——struct、class、enum、union最后面記得加分號,namespace最后沒有分號;
——默認引數是宣告時使用的,默認引數必須在后邊;
——virtual 在父類中宣告才有意義,只在子類中宣告是錯誤的,子類中的virtual是可有可無的,一般加上用來標示一下;
——extern 用在宣告時,表示在別處定義了,在.h中定義的函式默認是extern的,但是變數有自己添加;
——C++03類模板可以有默認引數,但是函式模版不能有默認模版引數,C++0X提供了函式默認模版引數的支持;
——static在檔案中修飾變數說明這個變數在其他檔案中是不可見的;
——switch陳述句的case只能是常量數字(列舉)或者字符;
——有符號的移位運算和無符號的移位運算是不同的,并且分為算術移位和邏輯移位;
——宏定義時添加下面代碼來防止產生錯誤;
#define MACRO do{//TODO}while(0)
——const的類成員函式在初始化串列中初始化,static的成員函式需要在類外定義初始化,const static可以直接在類中初始化也可以和static一樣在類外定義時初始化;
——只是回傳值不同不能作為多載;
——二義性問題需要注意;
——delete NULL是合法的且不會產生錯誤的;
——對指標進行加減法的步長取決于它指向的型別;
——采用加法來交換兩個數值容易產生溢位,可以采用異或來做;
——直接賦值的char指標是常量字串,不能修改;
——傳遞進函式的指標內容可以修改,對它本身的修改是錯誤的,需要時需要傳遞指標的指標;
——注意區別編譯器提供的擴展;
——C++比C有更強的型別檢查,有些在C中不需要型別轉換的,在C++中需要顯示的使用型別轉換;
——函式回傳值和引數的傳遞都會產生副本;

另外如果你想更好的提升你的編程能力,學好C語言C++編程!彎道超車,快人一步!筆者這里或許可以幫到你~
分享(原始碼、專案實戰視頻、專案筆記,基礎入門教程)
歡迎轉行和學習編程的伙伴,利用更多的資料學習成長比自己琢磨更快哦!
免費學習書籍:

免費學習資料:

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/263627.html
標籤:C
上一篇:莫隊學習筆記
