📄 iostream.h和iiostream的区别.txt
字号:
首页 本类include<iostream.h>和include<iostream>的区别
--------------------------------------------------------------------------------
如题
--------------------------------------------------------------------------------
最好多说两句,谢谢
--------------------------------------------------------------------------------
C++标准是不带.h的
--------------------------------------------------------------------------------
最好多给点分,哈哈
<iostream.h> 还是 <iostream>?
>>>>很多C++程序员还在使用<iostream.h>而不是用更新的标准的<iostream>库。
这两者都有什么不同呢?首先,5年前我们就开始反对把.h符号继续用在标准的头
文件中。继续使用过时的规则可不是个好的方法。从功能性的角度来讲,
<iostream>包含了一系列模板化的I/O类,相反地<iostream.h>只仅仅是支持字符
流。另外,输入输出流的C++标准规范接口在一些微妙的细节上都已改进,因此,
<iostream>和<iostream.h>在接口和执行上都是不同的。最后,<iostream>的各组
成都是以STL的形式声明的,然而<iostream.h>的各组成都是声明成全局型的。
>>>>因为这些实质上的不同,你不能在一个程序中混淆使用这两个库。做为一种习
惯,在新的代码中一般使用<iostream>,但如果你处理的是过去编写的代码,为了
继承可以用继续用<iostream.h>旧保持代码的一致性。
--------------------------------------------------------------------------------
<iostream>表示你使用的是标注命名空间,也就是在程序开始应该有这么一句话
using namespace std ;
这是遵循c++标准的
<iostream.h>
则没有遵循c++标准
--------------------------------------------------------------------------------
没什么好说的
老的标准和新的标准的区别。
include<iostream.h> 没有 namespace 的概念
include<iostream> 有namespace的概念
如果不是爱好考古
不用去理会include<iostream.h>
学新的就是了
其实也不是很新
都7,8年了
--------------------------------------------------------------------------------
加了.h,没有namespace
新的有namespace
--------------------------------------------------------------------------------
执行效率会不同,iostream比iostream.h要快很多.
--------------------------------------------------------------------------------
正有这个疑问呢,刚好!
--------------------------------------------------------------------------------
不需要加载很多头文件
--------------------------------------------------------------------------------
总结:上面说的是对的!
--------------------------------------------------------------------------------
这是新旧老版本的历史问题;
<iostream>比<iostream.h>新
要具体说明则涉及namespace
比如:
# include<iostream.h>
void main()
{
cout<<"this is a test "<<endl;
}
或
# include<iostream>
using namespace std;
void main()
{
cout<<"this is a test"<<endl;
}
注意到了吗?在<iostream.h>后没有用using namespace std; (使用标准名字空间)
而在<iostream>后就必须用,否则cout会被标记为"未定义",(或者为了避免,可以使用std::cout,而且每一个std namespace中的名字都要加上std::这是很麻烦的)
详细 请参见 <c++ primer> 中"域"
--------------------------------------------------------------------------------
谢谢大家,让我有点概念了。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -