什么是命名空间?
命名空间是一个代码组织的方式,是一个域。其作用是解决名字重复而造成的命名冲突。
命名空间的定义
前面使用namespace,后面加上命名空间名字然后接一对{}。如:
namespace std
{
}
命名空间内部可以定义变量/函数/类型。
命名空间的使用
使用命名空间成员的方式1:命名空间未展开时
std::cout<<"hello"<<endl;
使用::域限定符进入命名空间查找使用。
方式2:使用using将命名空间全部展开(全部授权)
using namespace std;
默认情况下不使用域限定符不能去命名空间寻找。但是命名空间全部展开后就可以直接去命名空间寻找。
注意:全放开命名空间很危险,还是使用命名空间限定符使用比较安全。
方式3:命名空间某个部分频繁使用的情况下,可以使用部分展开(部分授权),就只会展开这个部分。如果部分展开之后重名了,就不要展开了,还是使用域限定符吧。
using std::cout;
命名空间套娃
命名空间可以一层嵌套着一层,一般情况下套两层或一层。套娃情况下使用域限定符。如:
std::ss::rand;