60.为什么不使用using namespace std in C++
🍅1.不容易分辨各类函数的来源
比如我在一个自己的库里定义了一个vector,而标准库里又有一个vector,那么如果用了using namespace std 后,所用的vector到底是哪里的vector呢?
std::vector<int>vec1; //good
DiyClass::vector<int>vec2 //good
using namespace std;
using namespace DiyClass //万一有其他人用了DiyClass的命名空间
vector<int>vec3 //便会有歧义,完全不知道到底是哪里的vector
🍅2.一定要避免在头文件内使用using namespace std
如果别人用了你的头文件,就会把这些命名空间用在了你原本没有打算用的地方,会导致莫名其妙的产生bug,如果有大型项目,追踪起来会很困难
🍅3.可以用using namespace,但不要对std用
using namespace本来就是为了便利使用而存在的,可以对自己的库使用,但是不应当对std使用,因为大家都有std,很容易起冲突
但是还是提倡能不用就不用
就算用也可以就在一些小作用域里用,最大的情况,也就是在一个cpp文件的内部使用罢了
if (a > 10) {
using namespace std;
cout << a << endl; //good
}
这样不会影响外部
本文讨论了在C++编程中不推荐使用`using namespace std`的原因,包括可能导致的函数来源混淆、头文件污染以及潜在的命名冲突问题。建议只在局部作用域内有限制地使用,以提高代码可读性和维护性。


被折叠的 条评论
为什么被折叠?



