从命名空间外部使用命名空间成员
(1)总是使用限定名
namespace_name::member_name
(2)编写 using 声明来获得对我们知道将经常使用的名字的直接访问:
using cplusplus_primer::Query;
在这个 using 声明之后,程序可以无须 cplusplus_primer 限定符而直接使用名字 Query
命名空间成员的使用——使用using声明 using std::map;
一个 using 声明一次只引入一个命名空间成员,它使得无论程序中使用哪些名字,都能够非常明确。
using 声明中引入的名字遵循常规作用域规则。从 using 声明点开始,直到包含 using 声明的作用域的末尾,名字都是可见的。外部作用域中定义的同名实体被屏蔽。
命名空间别名
可用命名空间别名将较短的同义词与命名空间名字相关联,例如:
namespace primer = cplusplus_primer;
一个命名空间可以有许多别名,所有别名以及原来的命名空间名字都可以互换使用。
using 指示 using namespace std;
using 指示以关键字 using 开头,后接关键字 namespace,再接命名空间名字。如果该名字不是已经定义的命名空间名字,就会出错。
using 指示使得特定命名空间所有名字可见,没有限制。短格式名字可从 using 指示点开始使用,直到出现 using 指示的作用域的末尾。