为什么需要命名空间假设我们自己写了一个函数int max(int a, int b) { return a b ? a : b; }但 C 标准库里已经有std::max如果我们想同时使用这两个函数由于他们函数名一样所使用参数一样强行使用就会导致冲突一、什么是命名空间namespace命名空间是 C 用来解决命名冲突的一种机制。当不同库或模块中出现相同函数名、变量名或类名时命名空间可以把它们隔离开。二、如何使用命名空间1️⃣ 定义命名空间namespace MySpace { int value 10; void print() { std::cout Hello std::endl; } }2️⃣ 使用命名空间中的成员使用::作用域解析运算符MySpace::print(); std::cout MySpace::value;三、如何使用using关键字在模块开始引入别的命名空间中的内容1️⃣ using 单个成员using MySpace::print; print();只引入一个成员。2️⃣ using 整个命名空间using namespace MySpace;之后可以直接使用print();四、其他一些注意点1️⃣ 命名空间可以嵌套namespace A { namespace B { void test() {} } }使用方式A::B::test();2️⃣命名空间起别名namespace VeryLongName { void test() {} } namespace VLN VeryLongName; VLN::test();3️⃣匿名命名空间namespace { int x 10; }特点只能在当前文件中使用相当于 static常用于隐藏内部实现使用方式在当前 .cpp 文件中直接使用print(); std::cout value;不需要::因为它在当前文件作用域内。