对于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