假设我在头文件中声明了一个函数(或类,无关紧要),它是命名空间 foo 的一部分:
namespace foo
{
void bar();
…
}
很长一段时间以来,当我在 cpp 文件中定义函数时,我一直在重新打开命名空间:
namespace foo
{
void bar()
{
doSomething();
…
}
}
那是因为我是通过这种方式学习它的,并且它被用于我正在从事的项目中。直到最近,当我偶然发现一个使用 using 指令的项目时,我才真正考虑过它:
using namespace foo;
void bar()
{
doSomething();
…
}
最后还有一个使用全名的选项。我觉得这很乏味,尤其是当涉及到很多成员的课程时。在我看来,当文件的所有内容都是一个命名空间的一部分时,它没有多大意义。
void foo::bar()
{
doSomething();
…
}
所以我的问题是应该首选哪一个,为什么?特别是关于前两个选项(使用指令与重新打开命名空间)。