目录
命名空间
只要学习C++语言就必不可少的写这样的一段程序
using namespace std;
其中namespace 就是我们C++中的命名空间
首先,我们说一下为什么要引入命名空间呢?
其实啊,在我们的C/C++语言中,变量、函数以及类都是大量存在的,这些变量和函数以及类都是在全局域中,一不小心就有可能有冲突。再比如我们以后写项目,要链接第三方的库文件,那么就有可能我们的命名变量就和别的变量发生冲突,在C语言中,我们只能靠将名字尽量起的复杂一些来解决这个问题,但是也还是无法避免,所以为了避免这种冲突,C++就引入了命名冲突这种机制,来避免命名冲突。
1、命名空间的定义
namespace 名称{
}
例如
namespace name{
int a;
int b;
int add(int x,int y)
{
return x+y;
}
}
这块代码的意思是,a,b变量以及add函数就是name命名空间下的,命名空间不仅可以定义变量,而且还可以定义函数
2、命名空间的嵌套
namespace name{
int a;
namespace zhangsan{
int b;
}
}
在这里需要注意的是,同一个工程允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间。
3、命名空间的使用
1、using namespace name;
//虽然我们经常这么写,非常省事,但是这样也不安全,不建议使用。
2、using name :: a;
//部分展开,只展开命名空间的部分内容,相对来说也是比较安全的。
3、name :: a;
//这种情况就是我想用哪个变量,我就专门去调用哪个变量,这样写起来最安全,但是写起来麻烦