我听说 using namespace std;
是不好的做法,我应该直接使用 std::cout
和 std::cin
反而。
为什么是这样?是否存在声明与 std
命名空间中的某些内容同名的变量的风险?
最佳答案
考虑两个名为 Foo 和 Bar 的库:
using namespace foo;
using namespace bar;
一切正常,您可以毫无问题地从 Foo 调用 Blah()
并从 Bar 调用 Quux()
。但是有一天,您升级到 Foo 2.0 的新版本,它现在提供了一个名为 Quux()
的函数。现在您遇到了冲突:Foo 2.0 和 Bar 都将 Quux()
导入到您的全局 namespace 中。这将需要一些努力来修复,尤其是当函数参数恰好匹配时。
如果你用过foo::Blah()
和bar::Quux()
,那么引入foo::Quux()
本来就是一个非事件。
关于c++ - 为什么 "using namespace std;"被认为是不好的做法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54465972/