1.命名空间
在C++中,变量、函数、类都将存在于全局作用域中,在程序员使用各种各样的C++库时,可能会发生冲突,使用命名空间的作用就是对标识符的名称进行本地化,以避免命名冲突或域名污染。
2.命名空间的定义
格式:
namespace 命名空间的名字
{
命名空间的成员
}
接下来给大家分享一下命名空间的几种形式(注:同一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间):
(1)普通的命名空间
namespace N1
{
int a;
int Add(int left ,int right)
{
return left + right;
}
}
(2) 命名空间的嵌套
指在一个命名空间中在定义一个命名空间
namespace N2
{
int a;
int b;
int Add(int left , int right)
{
return left + right;
}
namespace N3
{
int c;
int d;
int Sub(int left , int right)
{
return left - right;
}
}
}
3.命名空间的三种使用方式
在知道怎么定义一个命名空间以后,接下来的问题自然就是怎样去使用了,这里给小伙伴们分享命名空间的三种使用方式:
(1)命名空间名称及作用域限定符
int main()
{
printf("%d\n",N::a);//输出命名空间N中的a
return 0;
}
(2) 使用using将命名空间中的成员引入
using N::b;
int main()
{
printf("%d\n",N::a);
printf("%d\n",b);
return 0;
}
(3) 使用using namespace 命名空间名称引入
using namespace N;
int main()
{
printf("%d\n",N::a);
printf("%d\n",b);
Add(10,20);
return 0;
}
观察上面的三种方法,前面两种方法引入的都是命名空间中某一个特定的成员,而第三种方法是把命名空间中所有的成员与函数都引入,使用时可以直接调用。