Saber2pr's Blog

命名空间

C++目前还没有模块的概念(C++20 前),所以很多库使用 namespace 来封装。例如 std 标准库,stl 标准模板库的符号都定义在 std 命名空间下。

一个命名空间的定义:

namespace Log {
  void print(const std::string& value = ""){
      std::cout << value << std::endl;
  }
}

// 使用作用域符调用内部方法
Log::print("hello world!");

在头文件中不建议 using namespace std,这样会导入大量符号,引起命名污染。