名称空间其他特性
嵌套
 
我们可以将名称空间声明进行嵌套:
 
namespace elements {
    namespace fire {
        int flame;
        ...
    }
    float water;
}
我们观察一下可以发现这里的flame位于elements::fire当中,所以当我们使用解析运算符使用它的时候写成:elements::fire::flame。
 
同样,我们也可以使用using编译指令引入fire名称空间:
 
using namespace elements::fire;
传递
 
并且我们还可以把using编译指令和using声明应用在名称空间当中:
 
namespace myth {
    using Jill::fetch;
    using namespace elements;
    using std::cout;
    using std::cin;
}
假设我们要访问Jill::fetch,由于它已经被引入myth当中了,所以我们可以这样访问:
 
std::cin >> myth::fetch;
并且using编译指令是可以传递的,A 引入了B,B引入了C,等价于A也引入了C。比如当我们运行using namespace myth;,由于myth当中引入了elements,等价于同时运行了这两条:
 
using namespace myth;
 
using namespace elements;
别名
 
我们还可以给名称空间创建别名,例如:
 
namespace my = myth::elements::fire;
 
using my::flame;
在上面这个例子当中,我们将别名和名称空间的嵌套结合在了一起使用。其实有一点像是将名称空间当成是一种特殊变量处理的感觉。

dawei

【声明】:乐山站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。