对于C++开发的刚入门者,在写代码时,用到std::string、std::cout等标准系统函数时,为图方面,喜欢这样写:
#include <iostream>
…
using namespace std;
...
这样写的一个好处是,在后面用到iostream里定义的函数和成员时,不用每个用到的地方加上std::开头,会给减少部分代码编写工作。但是,这种写法通常不被具有开发经验的人员所推荐,因为会导致以下问题:
比如对于string, 通常情况下一个完善的平台都会有自己定义的string类。如果这个string类的名称刚好是string(与std::string中的string)名相同,那么当你写以下代码时:
std::vector<std::string> names;
my_cool_reimplementation::vector<our_internal_stuff::string> othernames;
此时如果省略了std::

本文讨论了C++中`using namespace std`的便利与潜在问题,指出这种做法可能导致编译错误和代码维护困难。建议避免全局使用`using namespace`,而是直接使用std::前缀,或者在局部作用域限制使用。此外,还提醒开发者尽量避免自定义类名与标准库类名冲突,并在使用第三方库时谨慎处理命名空间。

1424

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



