c++ 命名空间

 命名空间:

概念:

实际上就是一个由程序设计者命名的内存区域,程序设计者可以根据需要指定一些有名字的空间域,把一些全局实体分别放在各个命名空间中,从而与其他全局实体分隔开来。 其实就是为了解决函数,变量冲突而提出的。命名空间可以包含以下几个内容:(花括号内不仅可以包括变量,而且还可以包括以下类型) 
·变量(可以带有初始化); 
·常量; 
·数(可以是定义或声明); 
·结构体; 
·类; 
·模板; 
·命名空间(在一个命名空间中又定义一个命名空间,即嵌套的命名空间)。 

1 namespace nsl 
2 {
3  const int RATE=0.08//常量 
4 double pay; //变量 
5 double tax() //函数 
6 {return a*RATE;} 
7 namespace ns2 //嵌套的命名空间 
8 {int age;} 
9 } 

 使用命名空间的方法:

可以使用作用域解析符号 : : 来使用命名空间下的变量,函数以及类等等(其实就是相当于比如年级一班和二班都有小鸣,开年级大会点名时,只有在小明的前面加上班级才能分清楚),但是每次都是这样会有些麻烦,所以我们可以用using声明和using编译指令来简化这一行为。using声明:using ns1::pay;进行声明过后我们可以直接使用pay变量了;using编译指令是指:using namespace ns1;告诉编译器这个名命空间的所有元素我都可以使用,这是一种非常偷懒的做法。定义在namespace中的元素必须通过以上的三种方式才能够使用!在一般情况下我们在头文件中声明,在源文件中定义。

由上可知命名空间可以嵌套使用,即在命名空间中可以定义命名空间也可以在命名空间使用using声明和using编译指令,这里要注意的是using编译指令是可以传递的,若A中用using编译指令使用B,如果有代码用using编译指令使用A,则与此同时B也用using编译指令过了。不仅如此头文件使用using编译指令使用B,则与此同时B也用using编译指令过了。命名空间是可以不连续的,也就是说可以在多个文件中完成对一个命名空间的补充。

猜你喜欢

转载自www.cnblogs.com/yskn/p/8979465.html