1.命名空间的概念和使用
C中:int num = 66;
int num = 66;//编译报错,出现重定义的错误
C++中:
命名空间1
{int num = 66;}
命名空间2
{int num = 66;}
1.1 自定义命名空间的格式
namespace 命名空间的名字{
名字空间的成员:变量、函数.......
}
注意:
格式和结构体的定义非常相似,但是大括号后面没有分号,命名空间仅仅是一个作用域的限定,并不是一种新的数据类型
1.2 导入命名空间的方式
(1)使用名字空间指令的方式导入命名空间中的所有的数据如:using namespace std;
(2)使用名字空间声明导入命名空间中的部分内容 (推荐使用)
如: using std::cout;
using std::endl;
:: -->作用域限定符,表示谁里面的,相当于“的”
(3)使用作用域限定符
如: std::cout <<"大家好!" << std::endl;
1.3 无名名字空间
如果一个标识符没有被放置于任何命名空间下,则默认为无名名字空间,可以使用以下方式引用无名名字空间的成员:::无名名字空间成员名
使用到全局变量或函数时使用 ::g_count;表示使用的是全局变量
1.4 命名空间的扩展
(1)同一个命名空间的内容是可以分开写的,并且命名空间中 函数的声明和定义也是可以分开写的;(2)命名空间可以嵌套,嵌套的命名空间可以使用起别名的方式来简化以后使用时的书写;
如:namespace ns = face::nose::moth1311; ns::show(); == face::nose::moth1311::show();