回答

收藏

为什么是“using namespace std;” 被认为是不好的做法?

技术问答 技术问答 291 人阅读 | 0 人回复 | 2023-09-12

其他人告诉我,using namespace std;编写代码是错误的,我应该直接使用它std::coutand std::cin。
: L- m5 u( ?1 x" b1 I为什么被using namespace std;认为这是不好的做法吗?它是低效还是可能声明模棱两可的变量(与std命名空间中的函数具有相同名称的变量)?它会影响性能吗?
# E0 D$ n2 M, A; [2 O. s                                                               
2 `( d: X2 }* x+ l0 F: _) _  o    解决方案:                                                                2 x2 F, w$ G2 O. V! X  M
                                                                这与性能无关。但考虑一下:你正在用两个名字叫 Foo 和 Bar 的库:
8 T$ y) O& Q( k1 ?3 M6 J& e
    using namespace foo;using namespace bar;0 i0 I/ C7 O& l
一切正常,你可以毫无问题Blah()从 Foo 和Quux()Bar但有一天你升级到 Foo 2.新版0 ,它现在提供了一个名字Quux(). 现在你遇到了一个冲突 Foo 2.0 和 Bar 都导入Quux()到你的整体命名空间。这将需要一些努力来解决,特别是如果函数参数正好匹配。9 B* m& N! b6 j5 Q7 a  r
假如你用了foo::Blah()and bar:uux(),然后引入 offoo:uux()将是非事件。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则