Warm tip: This article is reproduced from serverfault.com, please click

c++-为什么是“使用命名空间std”;

(c++ - Why is "using namespace std;" considered bad practice?)

发布于 2009-09-21 03:08:23

其他人告诉我,编写using namespace std;代码是错误的,应该直接使用std::coutstd::cin代替。

为什么被using namespace std;认为是不良做法?它的效率低下std吗?还是冒着声明模棱两可的变量(与命名空间中的函数同名的变量)的风险它会影响性能吗?

Questioner
akbiggs
Viewed
0
28k 2019-09-20 06:23:42

这根本与性能无关。但是考虑一下:你正在使用两个名为Foo和Bar的库:

using namespace foo;
using namespace bar;

一切正常,你可以Blah()从Foo和Quux()Bar轻松致电但是有一天,你将升级到Foo 2.0的新版本,该版本现在提供了名为的功能Quux()现在你有一个冲突:Foo 2.0和Bar都导入Quux()到全局名称空间中。这将需要花费一些时间来解决,尤其是在功能参数碰巧匹配的情况下。

如果你使用foo::Blah()bar::Quux(),那么引入foo::Quux()将会是一件不可能的事。