欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

命名空间的理解

程序员文章站 2024-03-24 23:14:52
...

一、为什么要有命名空间

一个工程的完成,往往由不同的人来共同完成,此时就有可能出现一个问题,不同的人写的函数名字会和另外一个人写的函数名字相同,此时哪一个函数是我们需要的呢?
所以我们为了解决这样的冲突,便采用了命名空间的方法,所谓的命名空间便是由用户自定义一个作用域,在不同的命名空间作用域内并不会互相影响。

二、命名空间的定义

命名空间是建立一些互相冲突的作用域,把一些全局实体分隔开。

命名空间存放的实体只在本命名空间域内有效,在此命名空间外部无效,这样便可解决了命名冲突问题。

命名空间用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命名空间的内容,而不用每次声明它。