命名空间是一种C++语言特性,用于组织代码,避免命名冲突并增加代码可读性。在命名空间中定义的变量、函数和类都在该命名空间中,其它命名空间或全局空间中的同名实体不会与其冲突。声明一个命名空间可以使用如下形式:
namespace myNamespace {
// 命名空间中的变量、函数、类定义
}
在使用命名空间中的实体时,需要加上命名空间前缀,例如:
// 使用myNamespace中的变量和函数
myNamespace::myVar;
myNamespace::myFunc();
可以同时使用多个命名空间,例如:
// 使用myNamespace1和myNamespace2中的变量和函数
using namespace myNamespace1;
using namespace myNamespace2;
myVar1; // 使用myNamespace1::myVar1
myVar2; // 使用myNamespace2::myVar2
如果出现命名冲突,可以使用命名空间别名来解决,例如:
namespace ns1 {
int x;
}
namespace ns2 {
int x;
}
namespace alias = ns1; // 定义别名
int main() {
alias::x = 1; // 别名访问ns1::x
ns2::x = 2; // 直接访问ns2::x
return 0;
}
在不同文件中使用命名空间也很简单,只需要在每个文件中声明相同的命名空间,即可使用其中的变量、函数和类。