1,原因
1,《C++ Primer Plus (第六版 中文版 人民邮电出版社)》第九章:内存模型和名称空间 第329页:
一般说来,使用using命令比使用using编译命令更安全,这是由于它只导入了制定的名称。如果该名称与局部名称发生冲突,编译器将发出指示。using编译命令导入所有的名称,包括可能并不需要的名称。如果与局部名称发生冲突,则局部名称将覆盖名称空间版本,而编译器并不会发出警告。另外,名称空间的开放性意味着名称空间的名称可能分散在多个地方,这使得难以准确知道添加了哪些名称。
2,防止名字空间污染。头文件中尽量不要使用。
3, 本来只需要一棵树,你缺砍了整个森林。
4 ,名称空间 就失去其了其意义
2,那该用什么
使用
using namespace-name::name;
参考知乎