std是C++里的一个名字空间,用using namespace 命令将STD里面的所有标识都包含到源程序中,你可以将这个语句放在任何地方,并不是像henry0616所说的将他们全部声明为全局变量,这个主要看你把这句话放在哪个地方,就和声明普通变量一样,STD里的标识的作用域就是从声明处开始到离开该过程结束
另外你也可以不用这个语句,在使用标识符前,在前面加上std::即可,比如:std::cout<<....;
这样包含可以省略很多程序代码,但并不是很好,我更喜欢用std::(::为作用域限定符)
。我倒没觉得using namespace std;没怎么不好,说什么暴露了, 还更喜欢std:: ,真是没法理解,当你程序足够大的时候,难道你打算把std中的所有名字都using一遍,还是在所有名字前都加个std:: ,而且还得有个前提,你得把std中的名字全部记住,这个问题不是我们该讨论的,不要误导其他人,个人观点
使用using namespace std;这样命名空间std内定义的所有标识符都有效(曝光)。就好像它们被声明为全局变量一样。那么以上语句可以如下写: