#include <iostream.h> 和 #include <iostream> using namespace std的区
2011-03-24 09:11
561 查看
C++标准库很大。非常大。难以置信的大。怎么个**?这么说吧:在C++标准中,关于标准库的规格说明占了密密麻麻300多页,这还不包括标准C库,后者只是 "作为参考 "(老实说,原文就是用的这个词)包含在C++库中。
当然,并非总是越大越好,但在现在的情况下,确实越大越好,因为大的库会包含大量的功能。标准库中的功能越多,开发自己的应用程序时能借助的功能就越多。C++库并非提供了一切(很明显的是,没有提供并发和图形用户接口的支持),但确实提供了很多。几乎任何事你都可以求助于它。
在归纳标准库中有些什么之前,需要介绍一下它是如何组织的。因为标准库中东西如此之多,你(或象你一样的其他什么人)所选择的类名或函数名就很有可能和标准库中的某个名字相同。为了避免这种情况所造成的名字冲突,实际上标准库中的一切都被放在名字空间std中(参见条款28)。但这带来了一个新问题。无数现有的C++代码都依赖于使用了多年的伪标准库中的功能,例如,声明在 <iostream.h> , <complex.h> , <limits.h> 等头文件中的功能。现有软件没有针对使用名字空间而进行设计,如果用std来包装标准库导致现有代码不能用,将是一种可耻行为。(这种釜底抽薪的做法会让现有代码的程序员说出比 "可耻 " 更难听的话)
慑于被激怒的程序员会产生的破坏力,标准委员会决定为包装了std的那部分标准库构件创建新的头文件名。生成新头文件的方法仅仅是将现有C++头文件名中的 .h 去掉,方法本身不重要,正如最后产生的结果不一致也并不重要一样。所以 <iostream.h> 变成了 <iostream> , <complex.h> 变成了 <complex> ,等等。对于C头文件,采用同样的方法,但在每个名字前还要添加一个c。所以C的 <string.h> 变成了 <cstring> , <stdio.h> 变成了 <cstdio> ,等等。最后一点是,旧的C++头文件是官方所反对使用的(即,明确列出不再支持),但旧的C头文件则没有(以保持对C的兼容性)。实际上,编译器制造商不会停止对客户现有软件提供支持,所以可以预计,旧的C++头文件在未来几年内还是会被支持。
#include<iostream.h>是旧的头文件
#include <iosteam> using namespace std;是新的头文件
当然,并非总是越大越好,但在现在的情况下,确实越大越好,因为大的库会包含大量的功能。标准库中的功能越多,开发自己的应用程序时能借助的功能就越多。C++库并非提供了一切(很明显的是,没有提供并发和图形用户接口的支持),但确实提供了很多。几乎任何事你都可以求助于它。
在归纳标准库中有些什么之前,需要介绍一下它是如何组织的。因为标准库中东西如此之多,你(或象你一样的其他什么人)所选择的类名或函数名就很有可能和标准库中的某个名字相同。为了避免这种情况所造成的名字冲突,实际上标准库中的一切都被放在名字空间std中(参见条款28)。但这带来了一个新问题。无数现有的C++代码都依赖于使用了多年的伪标准库中的功能,例如,声明在 <iostream.h> , <complex.h> , <limits.h> 等头文件中的功能。现有软件没有针对使用名字空间而进行设计,如果用std来包装标准库导致现有代码不能用,将是一种可耻行为。(这种釜底抽薪的做法会让现有代码的程序员说出比 "可耻 " 更难听的话)
慑于被激怒的程序员会产生的破坏力,标准委员会决定为包装了std的那部分标准库构件创建新的头文件名。生成新头文件的方法仅仅是将现有C++头文件名中的 .h 去掉,方法本身不重要,正如最后产生的结果不一致也并不重要一样。所以 <iostream.h> 变成了 <iostream> , <complex.h> 变成了 <complex> ,等等。对于C头文件,采用同样的方法,但在每个名字前还要添加一个c。所以C的 <string.h> 变成了 <cstring> , <stdio.h> 变成了 <cstdio> ,等等。最后一点是,旧的C++头文件是官方所反对使用的(即,明确列出不再支持),但旧的C头文件则没有(以保持对C的兼容性)。实际上,编译器制造商不会停止对客户现有软件提供支持,所以可以预计,旧的C++头文件在未来几年内还是会被支持。
#include<iostream.h>是旧的头文件
#include <iosteam> using namespace std;是新的头文件
相关文章推荐
- 详解C++中经常看到的#include <iostream> using namespace std;
- #include <iostream> using namespace std; C++命名空间是什么?
- C++关于std namespace与# include<iostream>关系的有关问题
- 为什么在#include <iostream>后还需要using namespace std
- #include <iostream> #include <string> //忘写一万遍!!! using namespace std;
- //使用条件表达式作为简单的“如果...那么...”判断。 #include <iostream> using namespace std; int main() { int score=2; s
- #include <iostream>和using namespace std;
- C++ #include<string> 和 using std::string
- 2,3 c++中 #include< >头文件 和 命名空间 Using namespace std的解释和区别
- #include<cstdlib> #include<cstdio> #include<cstring> using namespace std; int w[25][25][25]; bool vi
- using namespace std 和 include <string>的区别
- 提升布局性能____Re-using Layouts with <include/>
- 关于#include<stdio.h > 和 #include<iostream>
- C++Primer--->#include<iostream>与#include<iostream.h>以及#inclue<string> 和 #include<string.h>的区别
- #include<iostream>和#include<iostream.h>区别使用
- 为什么在写C++程序时预编译头只能是#include<iostream>而不能是#include<iosteam.h>
- #include <iostream>与#include <iostream.h>的区别
- #include <iostream>与#include <iostream.h>的区别
- C++中include <iostream>和include <iostream.h>的区别
- <iostream.h>和<iostream>的区别,以及using namespace等