天天看點

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可以實作)

繼續閱讀