Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1336014
  • 博文数量: 177
  • 博客积分: 3640
  • 博客等级: 中校
  • 技术积分: 1778
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-27 16:51
文章分类

全部博文(177)

文章存档

2014年(1)

2013年(10)

2012年(3)

2011年(163)

分类: WINDOWS

2011-05-31 14:16:02

名称空间就是namespace,是C++新增加的一种功能。在C语言中没有名称空间的概念,在新增C++标准中,C++增加了这一功能,不仅用户可以定义名称空间,而且C++的库函数也采用名称空间来定义常用的函数和类,C++中定义的名称空间,典型的就是经常使用到的std名称空间,他包含在iostream中。
程序员可以通过以下三种种使用名称空间:
1、直接使用法:
在每次要用到某个名称空间那定义的函数或者类(对象时),直接引用该名称空间限定符号,
以指示此次使用的函数或对象是属于该名称空间的。如std::cout<<"Hello!"<
样做的一个好处就是,在程序中可以有两个同名的变量或函数而不会引起编译冲突,缺点就
是每次使用前都的加上名称空间限定符如std::
2、using声明方法:
using 名称空间名::在名称空间中定义的函数或者变量。如 using std::cout;这样做
的好处就是在一个函数或文件中只需要引入一次,缺点这个函数或文件中不能定义同名的函
数或变量,而且如果要使用同一名称空间中的几个函数或者变量,将需要依次声明,如:
using std::cout;
using std::cin;
using std::ceer;
3、using编译法
using 名称空间名。如using std;这样的好处是方便快捷,此时在 std名称空间中定义
的所有函数和变量都可以使用,不足就是,如果程序中有同名的变量或函数将会被名称空间
中的变量或函数覆盖。
所以using声明法比using编译法更安全,但这两种方法都可能导致名称冲突,导致程序的二意性。
除了使用C++库定义的名称空间,程序员也可以自己定义名称空间,定义方法:
namespace 名称空间名{
变量类型 变量;
函数返回类型 函数原型;
};
变量可以是简单变量,也可以是复杂变量;函数的具体实现可以在名称空间外定义。
用户也可以定义未命名的名称空间,此时名称空间的作用域就为从该名称空间的定义开始到结束。
名称空间的的一些指导原则:
1、使用在已命名的名称空间中声明的变量,而不是使用外部全局变量。
2、使用已命名的名称空间中声明的变量,而不是静态全局变量。
3、如果开发了一个函数库或者类库,将其放在一个名称空间中。事实上,C++提倡将标准
函数库放在名称空间std中。
4、仅将编译指令using作为一种将旧代码转换为名称空间的权宜之计。
5、对于using 声明,首先将其作用域设置为局部而不是全局。

摘自:http://blog.chinaunix.net/u/32870/showart_255181.html
阅读(1219) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~