我就是喜欢简简单单的表达。


使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突。

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;
}

C++ 命名空间_C++

总结:一个命名一个空间,内容随意重复互补干扰。