C++ primer 第十七章 命名空间部分

来源:互联网 发布:逐浪cms 如何上传文件 编辑:程序博客网 时间:2024/04/29 16:11

1.      命名空间污染:名字冲突。

2.      命名空间定义:namespace space_name{…}

定义可以是不连续的,命名空间由它分离定义部分的总和构成,是累积的。

3.      可以用作用域操作符引用全局命名空间的成员。因为全局命名空间是隐含的,没有名字,可以直接用::member_name引用。

4.      嵌套命名空间中的名字遵循常规规则,内存空间的名字屏蔽外层空间的重名成员。

5.      未命名的命名空间是指在定义时没有给定名字的空间。未命名的空间可以在给定文件中不连续,但是不能跨越文件。如果两个文件都包含未命名的空间,则两个空间不相关。

6.      如果头文件定义了未命名的空间,那么,在每个包含该头文件的文件中,该命名空间中的名字将定义为不同的局部变量、函数。

7.      未命名的空间可用来取代C语言的static声明。在C中,声明为static的局部实体,在其他文件中不可见。

8.      Using声明是引入某个命名空间中的某个实体,而using指示则是把整个命名空间的名字全部引入。应该多用using声明,避免using指示。

9.      命名空间别名,namesspace A=B;

10.  Using声明可以出现在全局作用域、局部作用域和命名空间作用域中。类作用域中的using声明局限于被定义类的基类中的名字。

11.  当一个类声明友元函数时,函数的声明不必是可见的。如果不存在可见的声明,友元函数有将该函数或类的声明放入外围作用域的作用。

12.  如果using声明在已经有同名且同形参的函数作用域中引入函数,则报错。如果形参不同,则会引入成功,增加该函数名的重载函数集合。

原创粉丝点击