對於班級成員,我應該遵循什麼樣的命名約定?現在,我使用下劃線爲所有字段添加前綴,並使用常規名稱作爲訪問方法,例如:int _age
和int age() { return _age; }
什麼是C++中的字段和訪問器的良好命名約定?
任何首選方法?
對於班級成員,我應該遵循什麼樣的命名約定?現在,我使用下劃線爲所有字段添加前綴,並使用常規名稱作爲訪問方法,例如:int _age
和int age() { return _age; }
什麼是C++中的字段和訪問器的良好命名約定?
任何首選方法?
您不應該使用下劃線前綴。它,並且根據C保留給執行++標準17.4.3.1.2/1:
名稱和功能特徵的某些集總是保留給執行:包含
- 每個名稱雙下劃線(_ _)或以下劃線開頭,後跟大寫字母(2.11)保留給實施用於任何用途。
- 以下劃線開頭的每個名稱都被保留爲,以便在全局名稱空間中用作名稱。
你可以採取Google C++ coding style看看。
看看我個人建議與M_與get和set前綴的訪問方法,例如:m_age啓動成員變量和int getAge(){}。
對於一個好的規則集命名慣例和最佳實踐的閱讀這兩本書:
這是由人真的不一樣人。我個人用「getAge()」和「setAge(...)」來表示「int _age」。對於方法來說,使用名稱和動詞來感知它的作用是很常見的。只是調用一個方法「年齡」可能有點瀰漫。但是,再一次,這關乎品味。
取決於。我更喜歡使用:
_age的領域
getAge和setAge的存取方法
它只是一個風格問題......但如果你用前面的get/set您的訪問方法,那麼你的代碼會更清楚(I」假設你使用C++)
我建議不要使用前導下劃線。你使用的是合法的,但由於一些以下劃線開頭的名字是爲實現保留的,我寧願完全避免它們。
我在哪裏,我們使用m_
,如m_age
來代表會員。它工作得很好。
另外,你是否覺得你應該爲所有班級成員提供訪問者?公共職能應暴露類行爲,而不是類成員。
兩件事:
1)避免使用前導下劃線。一般慣例是編譯器供應商使用下劃線和雙下劃線作爲引入關鍵字的手段。例如,Microsoft Visual C++中的___declspec。這就是爲什麼你在一些C++文獻中看到尾部下劃線(例如int foo_;)的原因。
2)你的問題沒有答案。對不起,沒有幫助。 C++社區在這方面不像其他社區。 Sun爲Java建立了一種風格標準。微軟已經在C#的MSDN中記錄了一種樣式標準。其他社區傾向於遵循編程語言作者的風格。 「van Rossum如何寫Python?」或者「馬茨如何寫Ruby?」你沒有在C++中看到這個。雖然Stroustrup的書有一個明確的風格,但沒有人遵循它。即使是最着名的C++數字也都有自己的風格。
我可以提供的唯一建議是一致的。無論你選擇什麼風格都無所謂。 (注意:這是來自一個強迫症患者,我可以理解這個話題沒有明確答案的痛苦,但是我越老,我越學會放棄這個問題)。
單個下劃線僅保留在*全局名稱空間*中。也就是說,我更喜歡m_ for C++代碼。 – 2009-09-14 14:16:51
不,他們被保留執行。並且實現在全局名稱空間中使用它們。 – 2009-09-14 14:19:12
這是如何格式化戰爭開始......我同意約二分之一的谷歌代碼準則。另外1/2只是錯誤的國際海事組織。在該頁面上最好的建議是「使用常識,保持一致。」 – Glen 2009-09-14 15:51:43