代码改变世界

名称空间学习总结

2008-01-07 18:59  libiver  阅读(178)  评论(0编辑  收藏  举报

 

1using namespace
名称空间主要是为了解决在大的互相合作的工程中,出现像变量、函数、结构、枚举、类以及类和结构的成员的名称相互冲突的可能。
Declaration region:声明区域,是可以在其中进行声明的区域。
Potential scope:潜在作用域,变量的潜在作用域是从声明点开始,到其声明区域结束。由于变量必须在声明之后在能使用,因此潜在作用域比声明区域小。
注意:注意变量并非在其潜在作用域中任何位置都是可见的。如,它可能被在嵌套声明区域中声明的同名变量隐藏。
using 声明和using编译指令:
using声明是将特定的名称添加到它所属的声明区域中。它像其他的变量一样,能够覆盖同名的变量。
using编译指令是使所有的名称都可以用。它是由名称空间名和关键字using namespace组成,使名称空间中的所有名称都可用,而不需要使用作用域解析操作符。using编译指令将名称空间的名称视为函数之外声明的,但它不会使得该文件中的其他函数能够使用这些名称。一般来说,使用using声明比使用using编译指令更安全。
我们在编程中要尽可能地参考一下一些原则:
1、使用在已命名的名称空间中声明的变量,而不使用外部全局变量和静态全局变量。
2、尽量将自己开发的一组有逻辑关系的类库和函数库,放人一个名称空间中。
3、仅将using编译指令作为将旧代码转换为使用名称空间的权宜之计。
4、不要在头文件中使用using编译指令。如果一定要使用,请放在#include之后。
5、在导入名称时,优先使用using声明的方法。
6、对于using声明,首选将其作用域设置为局部而不是全局。