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,这样会导入大量符号,引起命名污染。