我就是喜欢简简单单的表达。
使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突。
Namespace 关键字的出现就是针对这种问题的。由于这种机制对于声明于其中的名称都进行了本地化,就使得相同的名称可以在不同的上下文中使用,而不会引起名称的冲突。我们也可以在自己的程序中创建自己的命名空间,这样可以对我们认为可能导致冲突的名称进行本地化。这点在我们创建类或者是函数库的时候是特别重要的。
命名空间基础
namespace 关键字使得我们可以通过创建作用范围来对全局命名空间进行分隔。本质上来讲,一个命名空间就定义了一个范围。定义命名空间的基本形式如下:
namespace 名称{//声明}
在命名空间中定义的任何东西都局限于该命名空间内。
using关键字
如果在程序中需要多次引用某个命名空间的成员,那么按照之前的说法,我们每次都要使用范围解析符来指定该命名空间,这是一件很麻烦的事情。为了解决这个问题,人们引入了using关键字。using语句通常有两种使用方式:
using namespace 命名空间名称;
using 命名空间名称::成员;
以上转载http://blog.chinaunix.net/uid-26874138-id-3215266.html
=============================================================================
文件:class.h
#ifndef __CLASS_H__ #define __CLASS_H__ #include <iostream> using namespace std; namespace Class{ class construction{ public: int func(); }; int construction :: func(void) { cout << "Hi~\n"; return 0; } } namespace Class2{ class construction{ public: int func(void); }; int construction :: func(void) { cout << "Hi2~\n"; return 0; } } #endif /* __CLASS_H__ */
文件名:construction.cxx
#include "class.h" int main(void) { Class :: construction con; Class2 :: construction con2; con.func(); con2.func(); return 0; }
总结:一个命名一个空间,内容随意重复互补干扰。