如果一個人有一個頭文件,假設「test.h」包括命名空間中定義和實施
namespace test
{
enum ids
{
a = 1,
b = 2,
c = 3,
d = 30
};
char *names[50];
};
和源文件,「test.cc」基本上只包括
test::names[test::a] = "yum yum";
test::names[test::c] = "pum pum";
// ...
將命名空間中的實現封裝起來會更有意義嗎?
我會說,因爲它畢竟是頭文件的實現,因此將實現包含在與頭相同的名稱空間中是有意義的,而不必手動爲每個變量添加前綴test::
,並在使用前綴來自外部的價值。
這是C++新手的觀點,聰明人在這裏會說些什麼?
是的,我知道你可以這樣做..這只是一個問題,「這是否是好的做法,或者你是否更好的手動添加前綴」:) – LukeN 2010-09-12 16:07:04
@LukeN:作爲利馬豆下面提到,這是一個問題的偏好和一致性。我更喜歡,並且想認爲我一貫使用第一種方法。我可以將案例明確化(就像你在代碼中一樣),這可能是最合理的,因爲它明確要求開發人員寫出他們的意思,而不是更隱含。缺點是它需要更多的打字,因此可能會導致手腕和手指的早期關節炎或可能導致心皮隧道綜合徵;) – andand 2010-09-13 03:12:40
@LukeN:我也贊成包裝,請注意'使用'方法是皺眉(即使在源文件)。 – 2010-09-13 08:33:01