《C++ Primer》中并無程式設計風格這一章,但是在無形中我覺得Stanley的程式設計風格一定是值得學習的。是以把一些看着不錯的程式設計風格記錄在這。
括号的使用
if(std::cin>>currVal){
int cnt = 1;//...
while(std::cin>>val){
if(val == currVal)
++cnt;
else{
std::cout << currVal << " occurs "
<< cnt << " times " << std::endl;
currVal = val;//...
cnt = 1;//...
}
}//while loop ends here
}//outermost if statement ends here
仔細分析,有四點值得借鑒: 1.while,if,else,for後跟的大括号,把開括号緊跟在同一行,閉括号則在結束行。我想這樣做好處是:節省空間,連續多個if語句或for語句嵌套是常有的事,這樣做能省下若幹行空間。缺點是:有時候難以看清閉括号對應哪個開括号。 2.為了克服第上述缺點,Stanley在重要的閉括号,或者是和開括号距離比較遠的閉括号,後面添加了注釋,标明是對應哪個部分。 3.輸出流操作符"<<"不要都擠在同一行。最好保證代碼能在半頁顯示。 4.使用很多空格。如"<<","="左右都有空格,雙引号中内容也有空格。這樣讓别人讀代碼(也包括後期讀自己的代碼)更加清晰,舒服!
頭檔案
頭檔案命名
頭檔案的名字一般和其内部定義的類同名。
這是可以了解的,但如果頭檔案中包含的不是類呢?
如果有多個輔助函數,我的習慣是将功能類似的函數放在同一個頭檔案中,起一個概括性的名字。而有些同學的做法是,每個函數弄一個頭檔案,頭檔案名字就是函數名。我也說不清哪個好哪個差,經驗太少,以後慢慢琢磨。
頭檔案内容
大家在頭檔案裡一般放什麼呢?很多人會把所有的函數實作、類的實作等,都塞到一個頭檔案中,其實這麼做并不是很好。很容易産生Link Error,重定義的錯誤。 一般來說,頭檔案中放的是:類定義,函數定義,const,constexpr這樣在任何檔案中都隻能定義一次的東西! head guards 看着陌生的名詞,其實就是最常用的頭檔案中#ifndef,#define,#endif啦。
不要用using 頭檔案中盡量不要包含using namespace。這是因為頭檔案會被很多cpp檔案包含,如果包含了,很可能引起命名空間重複。
變量命名
1,變量命名要有意義 2,類名,一般用大寫字母開頭。如:Sale_item
縮進
一些編輯器具有自動縮進的功能(代碼整理),使用這樣的編輯器對維護代碼很有好處。(VS下 ctrl K - ctrl D可以實作)