本文章仅仅是自己的学习记录,请各大读者谨慎参考
引言:
在一个项目中会定义大量的全局变量,为了使这些变量不冲突,我们分割了全局命名空间,其中被分割的每一个命名空间都是一个特有的域。我们可以在自己的域中定义自己的名字。
命名空间的定义:
namespace "name"
{
class "类名"{/**/};//可以定义类
int x = 0;//可以声明变量以及初始化
void x(){};//声明以及定义函数
namespace "name"{}; //可以定义其他命名空间
std::vector<int> x; //可以定义模板
}
//没有分号
//不可以定义函数和类的内部
使用:
命名空间内的成员可以相互使用。
其他作用域要访问本命名空间内的成员时候需要加上命名空间的名
"name"::x = new "name"::x();
命名空间可以是不连续的。我们怎么理解她呢,就是我们可以在不同的地方都可以打开命名空间并且为其添加新的成员。命名空间只是将一个全局空间分割成许多小的空间。但其空间的性质并为改变,我们在使用命名空间时,一定要记住他解决的问题,以他解决的问题来使用他。
eg:
//x.h
namespace c
{
void x();
}
//x.cpp
#include "x.h"
void c::x()
{
}
//函数不能重复定义 命名空间不可以当作接口使用