本篇内容介绍了“C++名称空间特性是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
我们可以将名称空间声明进行嵌套:
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;
在上面这个例子当中,我们将别名和名称空间的嵌套结合在了一起使用。其实有一点像是将名称空间当成是一种特殊变量处理的感觉。
我们还可以省略名称空间的名称来创建匿名名称空间。
namespace { int ice; int bandy; }
它相当于后面跟着using
编译指令一样,也就是说匿名的名称空间的潜在作用域为从声明点到该声明区域末尾。从这点来看,它与全局变量相似。但由于它是匿名的,所以无法在其他文件当中使用using
关键字引入,所以不能在其他文件使用,某种意义上有些类似于链接性为内部的静态变量。
“C++名称空间特性是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。