C++ namespace的作用和使用方法

命名空间(namespace)是C++提供的一个编程方式,可以将符号(变量、函数等)放入命名空间中,以避免命名冲突。

一、定义命名空间

使用namespace关键字可以定义一个命名空间:

namespace Util {
  int value = 1;
  void func() {
    // ... 
  }
} 

将相关的符号放入命名空间中,进行逻辑分组。

二、命名空间嵌套

命名空间支持多层嵌套定义:

namespace MySpace {

  namespace Inner {
    void func() {
      // ...
    }
  }

}

三、使用命名空间

通过命名空间名称和作用域解析运算符::可以访问命名空间成员:

int x = Util::value; 
Util::func();

四、using声明

using声明可以避免命名空间标识:

using Util::value;
using Util::func;

func(); // 直接调用

五、using指令

using指令可以直接使用命名空间下所有符号:

using namespace Util;

value = 1; // 无需命名空间标识

六、匿名命名空间

匿名命名空间成员仅文件内可见。

合理利用命名空间,可以编写可维护的大型软件系统。