一、为什么要有命名空间
一个工程的完成,往往由不同的人来共同完成,此时就有可能出现一个问题,不同的人写的函数名字会和另外一个人写的函数名字相同,此时哪一个函数是我们需要的呢?
所以我们为了解决这样的冲突,便采用了命名空间的方法,所谓的命名空间便是由用户自定义一个作用域,在不同的命名空间作用域内并不会互相影响。
二、命名空间的定义
命名空间是建立一些互相冲突的作用域,把一些全局实体分隔开。
命名空间存放的实体只在本命名空间域内有效,在此命名空间外部无效,这样便可解决了命名冲突问题。
命名空间用namespace开头,后面跟上命名空间的名字,他可以在全局作用域和其他作用域内部定义,但是不可以在类内部或者函数内部定义。
注意:
- 命名空间不以’ ; ‘结尾。
三、命名空间的使用
①当我们需要在外部使用某个命名空间
可以采用以下格式:
- 命名空间名字::命名空间成员
②无名的命名空间
一个命名空间如果没有名字,便是一个无名的命名空间。
namespace
{
int a = 0;
}
③命名空间别名
别名就是可以使用另外一个名字替换以下名字,如下程序便是使用Home替换MyHome的一个事例。
namespace MyHome
{..}
namespace Home=MyHome
④使用using命名空间成员名
using后面加上需要使用的成员,是对其中一个成员进行声明,这样我们可以在以后的程序中使用它,但是需要注意的是,我们不能在同一作用域内声明相同的成员。
using MyHome::float;
⑤使用using namespace 命名空间名
using是针对命名空间内的一个成员的声明,那么如果我们需要声明它里面的所有成员我们应该如何做呢?
此时我们便可以采用using namespace 命名空间名来声明
例如:
using namespace std;
如上我们便可以在以后的程序中使用std命名空间的内容,而不用每次声明它。