定义:
命名空间是类、函数、对象、类型和其他名字声明的集合。命名空间实际上就是一个由程序设计者命名的内存区域,程序设计者可以根据需要指定一些有名字的空间域,把一些全局实体分别放在各个命名空间中,从而与其他全局实体分隔开来。std是C++语言的标准名空间,包含了标准头文件中各种名字的声明。
作用:
命名空间可以帮助程序员在开发新的软件组件时不会与已有的软件组件产生命名冲突。
C++中命名空间的作用类似于操作系统中的目录和文件的关系,由于文件很多,不便管理,而且容易重名,于是人们设立若干子目录,把文件分别放到不同的子目录中,不同子目录中的文件可以同名。调用文件时应指出文件路径。
使用:
PS: 作用域分辨符“::”
方法1:
#include<iostream.h>
using namespace std; //使用标准名空间 std
int main()
{ int a,b;
cin>>a; //使用std的元素cin
cin>>b; //使用std的元素cin
cout<<"a+b="<<a+b<<'\n'; //使用std的元素cout
}
方法2:
#include<iostream.h>
using std::cin; //指定使用std的元素cin
using std::cout; //指定使用std的元素cout
int main()
{ int a,b;
cin>>a; //使用std的元素cin
cin>>b; //使用std的元素cin
cout<<"a+b="<<a+b<<'\n'; //使用std的元素cout
}
方法3:
#include<iostream.h>
int main()
{ int a,b;
std::cin>>a; //指定使用std的元素cin
std::cin>>b; //指定使用std的元素cin
std::cout<<"a+b="<<a+b<<'\n'; //指定使用std的元素cout
}
定义及引用命名空间:
//lib1.h
namespace lib1
{ class SameName
{/*...*/}
}
//lib2.h
namespace lib2
{ class SameName
{/*...*/}
}
#include"lib1.h"
#include"lib2.h"
void UseSameName
{
lib1::SameName one;
lib2::SameName two;
//...
}