复制/修剪/修改了我的答案的一部分,您 如何在 C++ 中正确使用命名空间?.
使用“使用”
您可以使用“使用”来避免重复辅助函数的“前缀”。例如:
struct AAA
{
void makeSomething() ;
} ;
namespace BBB
{
void makeSomethingElse() ;
}
void willCompile()
{
AAA::makeSomething() ;
BBB::makeSomethingElse() ;
}
void willCompileAgain()
{
using BBB ;
makeSomethingElse() ; // This will call BBB::makeSomethingElse()
}
void WONT_COMPILE()
{
using AAA ; // ERROR : Won't compile
makeSomething() ; // ERROR : Won't compile
}
命名空间组合
命名空间不仅仅是包。另一个例子可以在 Bjarne Stroustrup 的“The C++ Programming Language”中找到。
在“特别版”的8.2.8 Namespace Composition中,他描述了如何将两个命名空间 AAA 和 BBB 合并到另一个名为 CCC 的命名空间中。因此 CCC 成为 AAA 和 BBB 的别名:
namespace AAA
{
void doSomething() ;
}
namespace BBB
{
void doSomethingElse() ;
}
namespace CCC
{
using namespace AAA ;
using namespace BBB ;
}
void doSomethingAgain()
{
CCC::doSomething() ;
CCC::doSomethingElse() ;
}
您甚至可以从不同的命名空间导入选择符号,以构建您自己的自定义命名空间接口。我还没有找到它的实际用途,但从理论上讲,它很酷。