为什么是“using namespace std;” 被认为是不好的做法?
技术问答
252 人阅读
|
0 人回复
|
2023-09-12
|
其他人告诉我,using namespace std;编写代码是错误的,我应该直接使用它std::coutand std::cin。
$ `- d. e* s' y- N: @为什么被using namespace std;认为这是不好的做法吗?它是低效还是可能声明模棱两可的变量(与std命名空间中的函数具有相同名称的变量)?它会影响性能吗?
' i E( B5 A) v+ j0 w( f( z
. F, \2 Q3 d9 @; |5 ~, J# x1 U 解决方案: 4 ?1 g2 \8 Y3 k8 b
这与性能无关。但考虑一下:你正在用两个名字叫 Foo 和 Bar 的库:
' R! l Y9 S- e. m1 |using namespace foo;using namespace bar;* N& p$ ~. p4 [; h! N. L; k: R
一切正常,你可以毫无问题Blah()从 Foo 和Quux()Bar但有一天你升级到 Foo 2.新版0 ,它现在提供了一个名字Quux(). 现在你遇到了一个冲突 Foo 2.0 和 Bar 都导入Quux()到你的整体命名空间。这将需要一些努力来解决,特别是如果函数参数正好匹配。. a( W& [% ?/ k1 ?3 R3 H" W
假如你用了foo::Blah()and bar:uux(),然后引入 offoo:uux()将是非事件。 |
|
|
|
|
|