C++ Primer 學習 《編程風格》

《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可以實現)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章