編程學習 | C/C++入門易錯點整理,來看看吧!

 


 

——返回局部變量的引用或者指針是錯誤的,返回值是正確的,由於它會返回一個副本;編程

——成員函數指針是強類型的,進行轉換是須要顯示轉換,靜態成員函數能夠直接用普通函數指針來存取;函數

——靜態成員函數不能使用virtual、const、volatile修飾,靜態函數是類的不存在虛函數表因此不能是virtual的(其餘兩個不知道爲何);學習

——靜態成員函數只能操做類變量,沒有this指針;this

——dynmaic_cast只支持指針和引用的類型轉化,且作運行時類型檢測,其餘轉化不會;spa

——sizeof的結果與字節對齊和pack有關;指針

——sizeof一個空的類結果是1;視頻

——下面代碼只能解決重複包含,不能解決重複定義;blog

#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++編程!彎道超車,快人一步!筆者這裏或許能夠幫到你~

分享(源碼、項目實戰視頻、項目筆記,基礎入門教程)

歡迎轉行和學習編程的夥伴,利用更多的資料學習成長比本身琢磨更快哦!

學習書籍:


 

免費學習資料:

相關文章
相關標籤/搜索