声明
命名空间提供了在大项目中避免名字冲突的一种方法。
声明于命名空间块内的符号被放入一个具名的作用域中,避免这些符号被误认为其他作用域中的同名符号。
允许具有相同名字的多个命名空间块。这些块中的所有声明声明于该具名作用域。
声明方法:
示例
namespace name{
int i;
void fun(){};
struct a{};
namespace name2{};
}
注意:不可以在函数中声明命名空间。
使用
使用命名空间的方法有三种:
如访问上述空间:
//第一种方法访问单个变量加上前缀 name::表明空间
name::i=1;
//第二种方法把单个变量声明使用,以后在该区域使用都无需加前缀表明空间
using name::i;
//第三种方法把整个命名空间解包到当前区域,所有变量都能使用
using namespace name;
协作开发
如果是存在重名空间,会自动合并命名空间如:
namespace fruit{
int apple;
}
namespace fruit{
int banana;
}
//这里等价于
namespace fruit{
int apple;
int banana;
}
在多人开发环境中使用同一个namespace最后把所有文件连接起来就能构成新的完整的namespace,而不会出现命名冲突。