1.作用
C++ 中用于组织和管理标识符(如变量、函数、类等)的一种机制,用来避免命名冲突。与库文件、类的作用类似。三个分别作用与不同场景。
2.使用
定义与类的定义类似,关键词使用namespace。
// 声明命名空间
namespace MyNamespace {
// 在命名空间中定义变量、函数、类等
int x = 42;
void myFunction() {
// 函数实现
}
class MyClass {
// 类定义
}
}
int main() {
// 使用命名空间中的变量、函数、类等
MyNamespace::myFunction();
int val = MyNamespace::x;
MyNamespace::MyClass obj;
return 0;
}
通过using添加外部命名空间声明,添加以后就可以直接使用其中的cout、endl等标识符(简单理解为函数、变量等)。不声明的话就要通过::运算符使用其中的标识符。(与python通过import导入第三方包类似,python使用点运算符(.)。
#include <iostream>
using namespace std;//声明命名空间
int main() {
cout << "Hello, world!" << endl;
return 0;
}
#include <iostream>
int main() {
std::cout << "Hello, world!" << std::endl;
return 0;
}
3.问题总结
1.与引用第三方库区别
个人理解本质一样的。选择使用命名空间还是将内容写入库文件中取决于你的需求和项目的规模。如果你只是在单个项目中组织代码,并且不需要与其他项目共享功能,那么使用命名空间可能更加简单和方便。而如果你希望将功能封装为独立的模块,并且可以被多个项目共享使用,那么将内容写入库文件中可能更适合。