名前空間fooの一部であるヘッダーファイルで関数(またはクラスは関係ありません)を宣言したと仮定します。
namespace foo
{
void bar();
…
}
長い間、cppファイルで関数を定義していたときに、名前空間を再度開いていました。
namespace foo
{
void bar()
{
doSomething();
…
}
}
それは、このようにして学んだことと、自分が取り組んでいるプロジェクトで使用されたためです。代わりにusingディレクティブを使用するプロジェクトに出くわした最近まで、私はそれについて本当に考えたことはありませんでした。
using namespace foo;
void bar()
{
doSomething();
…
}
最後に、フルネームを使用するオプションがあります。特にメンバーの多いクラスが関係している場合は、かなり退屈だと思います。私の意見では、ファイルのすべてのコンテンツが1つの名前空間の一部である場合はあまり意味がありません。
void foo::bar()
{
doSomething();
…
}
だから私の質問はどちらが優先されるべきか、そしてなぜですか?特に最初の2つのオプションに関して(ディレクティブとreopen名前空間を使用)。