首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于c++头文件解决方法

2012-05-09 
关于c++头文件#include iostream.h#include iostream有啥差别啊???[解决办法]#include iostream.h是

关于c++头文件
#include <iostream.h>
#include <iostream>
有啥差别啊???

[解决办法]
#include <iostream.h>是c语言中比较通用的;
#include <iostream>
using namespace std; 是c++中比较通用的。
c++原来也兼容#include <iostream.h>的写法,但是98年标准化以后就不那样写了,现在c++全部都是用上面列出的第二种写法

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

[解决办法]
我来长话短说一下

iostream.h是很早以前,C++没有标准化之前的头文件,基本上现在已经没多少编译器支持了,这东西不带名字空间
iostream是标准用法,带名字空间,用这个吧
[解决办法]
补充如下:
在新的C++标准中,生成新头文件的方法仅仅是将现有C++头文件名中的 .h 去掉。例如, <iostream.h> 变成了 <iostream> , <complex.h> 变成了 <complex> ,等等。对于C头文件,采用同样的方法,但在每个名字前还要添加一个c。所以C的 <string.h> 变成了 <cstring> , <stdio.h> 变成了 <cstdio> ,等等。 

旧的C++头文件是官方所反对使用的(即,明确列出不再支持),但旧的C头文件则没有(以保持对C的兼容性)。 

下面是C++头文件的现状: 

· 旧的C++头文件名如 <iostream.h> 将会继续被支持,尽管它们不在官方标准中。这些头文件的内容不在名字空间std中。 

· 新的C++头文件如 <iostream> 包含的基本功能和对应的旧头文件相同,但头文件的内容在名字空间std中。(在标准化的过程中,库中有些部分的细节被修改了,所以旧头文件和新头文件中的实体不一定完全对应。) 

· 标准C头文件如 <stdio.h> 继续被支持。头文件的内容不在std中。 

· 具有C库功能的新C++头文件具有如 <cstdio> 这样的名字。它们提供的内容和相应的旧C头文件相同,只是内容在std中。 
另外 <iostream> 是由 stl 实现的!

热点排行