命名空间(namespace)是C++提供的一个编程方式,可以将符号(变量、函数等)放入命名空间中,以避免命名冲突。
一、定义命名空间
使用namespace关键字可以定义一个命名空间:
namespace Util {
int value = 1;
void func() {
// ...
}
}
将相关的符号放入命名空间中,进行逻辑分组。
二、命名空间嵌套
命名空间支持多层嵌套定义:
namespace MySpace {
namespace Inner {
void func() {
// ...
}
}
}
三、使用命名空间
通过命名空间名称和作用域解析运算符::可以访问命名空间成员:
int x = Util::value;
Util::func();
四、using声明
using声明可以避免命名空间标识:
using Util::value;
using Util::func;
func(); // 直接调用
五、using指令
using指令可以直接使用命名空间下所有符号:
using namespace Util;
value = 1; // 无需命名空间标识
六、匿名命名空间
匿名命名空间成员仅文件内可见。
合理利用命名空间,可以编写可维护的大型软件系统。