C++ 命名空间详解

命名空间是C++中实现模块化和避免命名冲突的一个特性。合理利用命名空间可以编写出结构良好、组织性强的代码。

一、定义命名空间

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

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

命名空间包含的内容可以是变量、函数、类等。

二、命名空间嵌套

命名空间支持嵌套定义:

namespace MySpace {

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

}

三、使用命名空间

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

MySpace::func(); 

MySpace::Nested::func();

四、using声明

using声明可以避免命名空间作用域标注:

using MySpace::func;
func(); // 直接调用

using namespace MySpace; // 引入整个命名空间

五、命名空间别名

namespace MS = MySpace;
MS::func();

六、未命名的命名空间

namespace {
  int x; // 未命名命名空间
} 

合理利用命名空间可以避免名字冲突,控制符号的作用域,使代码更加模块化。掌握C++命名空间的用法对编写可维护性更好的代码非常重要。