2016-08-16 24 views

答えて

10

ヘッダーファイルでは、using namespace N;ディレクティブをグローバルスコープで使用しないでください。

すべてのクライアントコードで多くの識別子をNから強制します。

名前空間Xの中に入れてもかまいません。using namespace X;を実行するクライアントコードは、Nからすべての識別子も取得することに注意してください。より控えめなアプローチは、usingの宣言Xの束を持つことです。 using N::foo;


代替、using namespace N;理由がNNot_short_enough_for_practical_useのように、好ましくはそれが必要だ最小のスコープ内名前空間のエイリアス–を使用することで、非常に長い名前であるということです。

namespace N = Not_short_enough_for_practical_use; 

先生の“訂正”移動中:using namespaceその前の名前空間は負の値です。

何かの範囲を最小限に抑えるよう常に(実用的な範囲内で)努力する必要があります。

+1

ありがとうございます。名前空間エイリアスは特に便利です! –

1

お客様のご質問は、ご意見に基づいており、会社の社内ポリシーによって異なります。

非常に特殊なケースがありますが、ここではすべての識別子をできるだけ最初に使用するように宣言することをお勧めします。スクロールを最小限に抑え、コードを読みやすくします。また、最小のネームスペースと最もネストされたネームスペースに識別子を入れ、より広い名前空間に不要な識別子があふれないようにします。

もし私があなただったら、彼が提案した変更について、あなたの指導者から強く合理的な説明を要求するでしょう。

+0

はい、実際に私は彼に私のサンプルを見せてくれました。どうもありがとう! –

関連する問題