滚龙

导航

命名空间

如果有两个函数,一个用于获取磁盘卷标名称,一个用于获取文件名称,都想命名为name,则必然会发生冲突,这个时候就需要命名空间这个东西了。

 

命名空间是C++中的一种机制,它防止在程序中将相同的名称用于不同的事情时可能发生的问题,其方法是将一组给定的名称与一种姓(family name)关联起来,这种姓就是命名空间名称。

 

命名空间与实体名称之间通过作用域解析运算符(::)进行连接,例如:

mynamespace::name

 

还是返回到最开始的例子,下面两行代码代表了不同的运算:

disk::name    // 这个就是名为disk命名空间中的name运算符
file::name    // 这个就是名为file命名空间中的name运算符

 

另外还需要注意下面几种用法:

/*
	告诉编译器在不打算指定命名空间名称的情况下使用命名空间std中的cout。
	在之后的源文件中所使用的cout,编译器都假定为std::cout
*/
using std::cout;

/* 如果要与其他命名空间的cout混用 */
cout				// 由于前面声明了using std::cout,所以是std命名空间中的cout
std::cout			// std命名空间中的cout
mynamespace::cout	// mynamespace命名空间中的cout

 

自己的体会(可能会有错误,我会在之后的实践中加以修正与补充完善):

1、using namespace 一般放在 #include 之后

2、要引用多个命名空间需要撰写多行using namespace 语句

posted on 2010-12-07 23:05  滚龙  阅读(252)  评论(0编辑  收藏  举报