c++名字空间 namespace
名字空间域的必要性
大型的程序项目一般由多为程序员完成,当各个文件联编时,不可避免会发生成员名称冲突,而针对这样的问题c++提供了名字空间,每个命名空间有独立的作业作用域。
除了可以避免成员的名称发生冲突之外,还可以使代码保持局部性,从而保护代码不被他人非法使用。
引用名字空间域中的量或函数的写法
写法1 用::+成员的方式
namespace ljx{`
`int a,b;`
`int add(int a,int b)`
`{return a+b;}`
`}`
`int x=ljx::a;`
`int m=ljx::add(10,20);
名字空间域里嵌套名字空间时,引用量则用多个作用域解析附(::)来完成 如
`cout<<ljx::c++::min<<endl`
写法2 如果想在整个文件中一直引用一个量则可以使用using
`using ljx::a`
需要整个名字空间时用using namespace 如using namespace ljx。
注意:
1.名字空间域可以分层嵌套,即一个namespace中还有一个namespace。
2.同一个工程中可以有多个相同的namespace,最后编译器会把他们合成。
3 .名字空间可以包含函数,函数不可以包含名字空间。
using 的其他作用(与typedef 的类似用法)
typedef unsigned char u_int8
using u_int8=unsigned char