概述
命名空间通常作为附加信息来区分不同库中相同名称的函数、类、变量。命名空间的本质是定义一个范围,该范围即为一个上下文,一个上下文中通常不允许出现相同名称的函数、类、变量。
定义
-
定义格式
-
普通的命名空间
namespace namespace_name { VariableType variable; ReturnType funciton(ParameterType parameter) { return result; } }
-
嵌套的命名空间
namespace namespace_name { VariableType variable; ReturnType funciton(ParameterType parameter) { return result; } namespace subNamespce_name { VariableType subVariable; ReturnType subFunciton(ParameterType parameter) { return result; } } }
-
-
命名空间中函数或变量的调用
// 使用范围解析运算符调用命名空间中的函数或变量 namespace_name::variable; namespace_name::funciton(parameter); namespace_name::subNamespce_name::subVariable;
using namespace 指令
- 使用 using namespace 指令来简化指定命名空间中函数或变量的调用
-
指定一个命名空间
using namespace namespace_name; function(parameter);
-
指定一个命名空间中的一个函数或变量
using namespace_name::function(); function(parameter); // 未指定的变量,需要使用命名空间名字加上范围解析符访问 namespace_name::variable;
-
- using 指令的作用域
- 从 using 指令开始,到该范围结束
示例
-
定义命名空间
namespace testSpace { int variable; void function() { cout << "testSpace" << endl; } // 嵌套的命名空间 namespace subTestSpace { void function() { cout << "subTestSpace" << endl; } } }
-
main函数
int main(int argc, const char * argv[]) { testSpace::function(); testSpace::subTestSpace::function(); return 0; }