C++中命名空间可以理解为多个人同时对一个项目进行开发,那么就会遇见这么一个问题,张三有一个叫void fun();的函数,李四也有一个叫void fun();的函数,虽然在不同的源文件,但是会出现重定义的现象。
namespace
关键字就是为了解决命名问题,命名空间可以不连续,甚至可以写在多个文件中,如果你以往没有定义这个命名空间,那么“namespace”命名空间这种写法就相当于定义了一个命名空间,如果你以往已经定义了这个命名空间,那么“namespace”命名空间名这种写法就相当打开已经存在的命名空间并添加新成员的声明。
外界如何访问命名空间的某个函数呢?
如下语法格式
//格式:命名空间名::实体名
zhangsan::fun();
lisi::fun();
每次调用一个函数通过前面都要加一个"命名空间名::"比较麻烦这个时候可以添加一个新的关键字using
using namespace zhangsan;
这样声明调用n函数系统会默认是’zhangsan’命名空间的,但是如果用using同事声明zhangsan和lisi,这个时候直接调用fun就会再次出现二义性,那么这个时候就得用到’::’