假设我在头文件中声明了一个函数(或类,无所谓),它是命名空间foo的一部分:
namespace foo
{
void bar();
…
}
Run Code Online (Sandbox Code Playgroud)
很久以来,当我在cpp文件中定义函数时,我一直在重新打开命名空间:
namespace foo
{
void bar()
{
doSomething();
…
}
}
Run Code Online (Sandbox Code Playgroud)
那是因为我以这种方式学习它并且它被用于我正在进行的项目中.直到最近,当我偶然发现一个使用using指令的项目时,我从未真正想过它:
using namespace foo;
void bar()
{
doSomething();
…
}
Run Code Online (Sandbox Code Playgroud)
最后,可以选择使用全名.我发现它非常繁琐,特别是当涉及到很多成员的课程时.在我看来,当文件的所有内容都是一个命名空间的一部分时,它没有多大意义.
void foo::bar()
{
doSomething();
…
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是哪一个应该是首选,为什么?特别是关于前两个选项(使用指令与重新打开命名空间).