1,使用命名空间的原因
最初引进的原因就是因为变量名总会因为一些情况发生重复定义,这个时候就会造成一些错误还难以寻找,全局变量本来作用域就在所有的app文件中,而且在一个项目中,有不同的人编写文件
这个时候变量就非常容易发生冲突,当然如果用驼峰命名法也是可以的,但是名字太长可读性很低,加深了程序员的负担
2,使用格式
:: 域解析说明符 代表一种作用域的关系,左边代表上一级,右边代表所属成员 ,类内申明,类外定义函数时候也要用::代表要实现该类的这个函数
namespace node{ // node是名字,x.y是命名空间中所属变量,还可以有函数和类 int x,y; } using namespace node //直接导入该命名空间,尽量少用,很容易导致命名污染,也就是命名冲突 using node::x; // 把该一个成员导入进来 node::x //使用格式
例子:
#include<cstdio> #include<iostream> namespace node{ int x,y; } namespace dian{ int x,y; } int main(){ node::x=1; node::y=1; dian::x=2; dian::y=2; using node::x; std::cout<<x<<" "<<node::y<<"\n"; }
3,其他
std : 所有的库的变量函数类模板都在std命名空间内,每个库都有个一个命名空间,这样才让变量都不冲突
命名空间嵌套:也就是嵌套使用,差不多,和类一样有了多层引用
命名空间合并:如果命名空间的名字相同的,就算是不同的Cpp文件也会合并在一起,这也是命名空间的不连续性
原文链接: https://www.cnblogs.com/Lis-/p/12369120.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;
也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/331975
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!