命名空间命名空间是C++语言的新特性,它能够解决命名冲突问题。

例如,小明定义了一个函数swap(),C++标准程序库中也存在一个swap()函数。此时,为了区分调用的是哪个swap()函数,可以通过命名空间进行标识。C++中的命名空间包括两种,具体介绍如下。

using namespace std;

1.标准命名空间std是C++标准命名空间,由于C++标准库几乎都定义在std命名空间中,因此编写的所有C++程序都需要引入下列语句。

namespace lib 
{ 
     void func(){} 
}

2.自定义命名空间使用nam espace可以自定义命名空间,示例代码如下所示:[插图]上述代码中,使用nam espace定义了一个名称为lib的命名空间,该命名空间内部定义了一个func()函数。如果要使用命名空间中定义的元素,有下列三种方式。

(1)使用“命名空间::元素”方式指定命名空间中定义的元素。例如,如果要在屏幕上输出数据,并且在末尾加上换行,就要使用标准命名空间std中的cout和endl,在使用cout和endl时,在cout和endl前面加上命名空间和“::”作用域标识符,示例代码如下所示:

std::cout<<"C++"<<std::endl;

(2)使用using语句引用命名空间元素。例如,如果在屏幕上输出数据,可以使用using引用标准命名空间中的cout,这样在后面的代码中可以随意使用cout,示例代码如下所示:

using std::cout;
cout<<"C++";

需要注意的是,这种方式只能使用using引入的元素,例如,无法单独使用endl这个元素,但可以通过std::endl的形式使用endl。(3)使用using语句直接引用命名空间。示例代码如下所示:

using namespace std;