《C++》命名空间简述
文章目录
- 一、命名空间定义
- 二、访问命名空间内的成员
- 三、标准命名空间:std
- 四、嵌套命名空间
一、命名空间定义
在C++中,命名空间(namespace)是一种将标识符分组的机制,用于避免重命名。例如:
int a = 3;int main()
{int a = 0;printf("%d",a);//这里是0呢,还是3呢?答案是0.//因为:局部变量>全局变量.那我们想调用3如何进行呢,这时候就引入了namespace.return 0;
}
当我们想不删除局部变量的时候引用3的时,就需要命名空间。
namespace Maysheeo
{int a = 3;
}
二、访问命名空间内的成员
当我们想要命名空间的成员时,则:
(命名空间名字):: (命名空间成员)
**常用于单个使用**using namespace (命名空间名字)
**常用于直接展开变量,便于全局直接使用**using (命名空间名字)::(命名空间成员)
**常用于部分展开**
如上文:
int main()
{printf("%d",Maysheeo::a);return 0;
}
三、标准命名空间:std
在C++标准库中所有组件(如cout,cin)都在std命名空间中,因此我们常用:
#include<iostream>//头文件
using namespace std;
int main()
{cout<<"hello,world"<<endl;//这里就相当于printf("hello world\n");//endl这个关键词就是std里面的,类似于"\n"//cout和cin的好处就是它会自动识别类型,如:char x = 'a';cout<<x<<endl;return 0;}
四、嵌套命名空间
命名空间是可以嵌套的,调用的时候则:
(命名空间名字1)::(嵌套的命名空间名字)::(成员名字)
例如:
#include<iostream>
using std::cout;
using std::endl;
namespace Maysheeo
{namespace maysheeo{int a = 3;}
}int main()
{cout << Maysheeo::maysheeo::a << endl;return 0;
}