2016-08-16 56 views

回答

10

在頭文件中,您不應在全局範圍內有using namespace N;指令。

它會強制所有客戶端代碼上的大量標識符N

但它可以在命名空間X中使用。請記住,那麼using namespace X;的客戶端代碼也將從N獲取所有標識符。更保守的方法是在命名空間X中有一堆using聲明,例如, using N::foo;


的替代,當using namespace N;的原因是N是一個很長的名字,像Not_short_enough_for_practical_use,是使用一個命名空間別名–最好是在需要的地方的最小範圍:

namespace N = Not_short_enough_for_practical_use; 

您的老師的「更正」移動一個using namespace的一個名稱空間在它之前是負值的。

您應該始終努力(在實際限制內)儘量減少任何事物的範圍。

+1

非常感謝。命名空間別名尤其有用! –

1

您的問題看起來有點基於意見,取決於貴公司的內部政策。

您可能有一個非常特殊的情況,但這裏常見的建議是聲明每個標識符儘可能接近它的第一次使用。它將最大限度地減少滾動並使您的代碼更易於閱讀。它還會將標識符放在最小和最嵌套的命名空間中,從而防止更廣泛的名稱空間被不必要的標識符淹沒。所以如果我是你,我會要求你的導師對他提出的改變給出非常合理的解釋。

+0

是的,實際上我已經向他展示了我的樣本。非常感謝! –