C++ using namespace std(转载)

转载自http://www.kuqin.com/language/20080107/3532.html

感谢这位大神的解答!

以下的内容摘抄自转载的文章里面的部分内容。

早些的实现将标准库功能定义在全局空间里,声明在带.h后缀的头文件里,c++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h。

因此,当使用<iostream.h>时,相当于在c中调用库函数,使用的是全局命名空间,也就是早期的c++实现;当使用<iostream>的时候,该头文件没有定义全局命名空间,必须使用namespace std;这样才能正确使用cout。

所谓namespace,是指标识符的各种可见范围。

C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。

因为标准库非常的庞大,所程序员在选择的类的名称或函数名时就很有可能和标准库中的某个名字相同。所以为了避免这种情况所造成的名字冲突,就把标准库中的一切都被放在名字空间std中。但这又会带来了一个新问题。无数原有的C++代码都依赖于使用了多年的伪标准库中的功能,他们都是在全局空间下的。  
所以就有了<iostream.h>和<iostream>等等这样的头文件,一个是为了兼容以前的C++代码,一个是为了支持新的标准。

命名空间std封装的是标准程序库的名称,标准程序库为了和以前的头文件区别,一般不加".h"

时间: 2024-10-12 12:30:55

C++ using namespace std(转载)的相关文章

【转】关于“using namespace std”

对于一个存在着标准输入输出的C++控制台程序,一般会在#include <iostream>的下一行发现一句话,using namespace std.这句话其实就表示了所有的标准库函数都在标准命名空间std中进行了定义.其作用就在于避免发生重命名的问题. 1. 关于namespace C++引入了命名空间namespace主要解决了多个程序员在编写同一个项目中可能出现的函数等重名的现象.解决方法就是加上自己的命名空间.比如下面的例子: 1 2 3 4 5 6 7 8 9 10 11 12 1

using namespace std

using namespace std std 是一个命名空间..不同的命名空间可以有相同的类名被定义 ..using namespace std;就是指明下面的程序使用std,如果不用这句指明的话就要用std::string(string是std空间中定义的也可以在全局空间中定义,只要名字空间不一样即可..)..否则可以默认名字空间中有std.便不用std::来修饰它是C++新标准中有的,解决多人作编大程序时名字冲突问题.比如A B两个班都有叫张三的人,你要使用A班的张三,必然要先指名是A班这

(转)c++ 中的using namespace std是什么意思,什么时候用

使用std命名空间 98年以后的c++语言提供一个全局的命名空间namespace,可以避免导致全局命名冲突问题.举一个实例,请注意以下两个头文件: // one.hchar func(char);class String { ... }; // somelib.hclass String { ... }; 如果按照上述方式定义,那么这两个头文件不可能包含在同一个程序中,因为String类会发生冲突.所谓命名空间,是一种将程序库名称封装起来的方法,它就像在各个程序库中立起一道道围墙.比如://

Error:全局变量不明确(using namespace std 与全局变量的冲突)

在用递归写八皇后时,定义了一个全局变量count,结果出现问题如下:提示全局变量不明确. 最后发现在实现文件.cpp中,我使用了using  namespace std; 解决方法: 1.使用count 的地方改成 ::count 替代(因为std命名空间下也有 std::count ,编译器不确定此处是::count 还是std::count,所以会不明确) 2.注释掉这个命名空间 3.或者改用 : using std::cout; using std::endl; using std::ci

using namespace std;的注意事项

作者:zhang.jingjing链接:转自  https://www.zhihu.com/question/26911239/answer/51503880来源:知乎 因为使用STL中 有部分名称是没有加下划线的保留标记的而在自己的源代码中用到了后会引发未定义的后果 例如: #include <algorithm> using namespace std; int main() { int max=0; } 一直我都告诫学习C++的人 以后精通了C++就不要用using namespace

关于using namespace std

[来自]http://www.cnblogs.com/uniqueliu/archive/2011/07/10/2102238.html 对于一个存在着标准输入输出的C++控制台程序,一般会在#include <iostream>的下一行发现一句话,using namespace std; 这句话其实就表示了所有的标准库函数都在标准命名空间std中进行了定义.其作用就在于避免发生重命名的问题. 1. 关于namespace C++引入了命名空间namespace主要解决了多个程序员在编写同一个

C++“using namespace std;”的理解

如果程序中需要使用C++的输入(cin)或输出(cout)工具,必须提供这样两行代码: 1 #include <iostream> 2 using namespace std; //可以使用空间名称为std里面的东西 当我建立一个名为HelloWord 的C++工程时会出现这样的代码: 1 using namespace HelloWord; //可以使用空间名称为HelloWord里面的东西 C++引入名称空间namespace的目的是避免多个程序员在编写同一个项目时出现函数或变量重名的现象

(C++)浅谈using namespace std

1.<iostream>和<iostream.h> 在你的编译器include文件夹里面可以看到,二者是两个文件,里面的代码是不一样的. 后缀为.h的头文件c++标准已经明确提出不支持了,早些的实现将标准库功能定义在全局空间里,声明在带.h后缀的头文件里: c++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h. 因此, 当使用<iostream.h>时,相当于在c中调用库函数,使用的是全局命名空间,也就是早期的c++实现: 当使用<iostr

std::和using namespace std;

std是标准命名空间名称 相同点: std::和using namespace std:的意思是一样的,都表示使用命名空间std: 不同点: 放在程序中的位置不同 1. using  namespace  std:头文件如果包含了#include<iostream>,那么在头文件下方写上using  namespace  std:2.std::头文件如果包含了#include<iostream>,但是没有在头文件下方写上using  namespace  std:那么在使用标准输入