命名空间 namespace
什么是命名空间
按照一定的逻辑标准 把具有共同特点的数据组织到一起。
命名空间作用
便于划分模块
防止命名冲突
命名空间构成
namespace 空间名
{
/* 变量定义
函数声明
函数定义
类型定义 */
}
namespace ABC{
int age=50;
double salary = 8500 ;
void show()
{
cout << "this is ABC age is "<< age << endl;
}
}
如何使用命名空间
在空间的数据名前 加命名空间名::
ABC::show();
ABC::age=51;
使用using 声明的方式
using 空间名::数据名;
using ABC::show();
using ABC::age=51;
引入冲突之后 使用第一种解决
使用using namespace 指令
using namespace 空间名;
using namespace ABC;
如果冲突回到第一种解决
命名空间嵌套
namespace 空间名1
{
namespace 空间名2
{
}
}
namespace ns1{
int var_x=1;
namespace ns2
{
int var_x=2;
void testvar()
{
cout << var_x << endl;
}
namespace ns3
{
void test()
{
cout << "this is ns3" << endl;
}
}
}
}
命名空间重命名
namespace 空间名=空间名1::空间名2;
using ns1::ns2::ns3::test;
namespace ns4=ns1::ns2::ns3;
无名命名空间
如果一个数据 没有出现在任何一个命名空间中,则这个数据会放入无名命名空间中。
::数据名;
#include <iostream>
using namespace std;
int num=100;
namespace
{
double salary=345.88;
}
int main()
{
cout << num<< endl;
cout << ::num << endl;
cout << ::salary << endl;
cout << salary << endl;
}