iostream与iostream.h的区别


Posted in 面试题 onJanuary 16, 2015

参考答案:namespace,是指标识符的各种可见范围。C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。
和是不一样,前者没有后缀,实际上,在你的编译器include文件夹里面可以看到,二者是两 个文件,打开文件就会发现,里面的代码是不一样的。
后缀为.h的头文件c++标准已经明确提出不支持了,早些的实现将标准库功能定义在全局空间里,声明在带.h后缀的头文件里,c++标准为了和C区别开,也为了正确使用命名空间,规定头文件 不使用后缀.h。因此,当使用时,相当于在c中调用库函数,使用的是全 局命 名空间,也就是早期的c++实现;当使用的时候,该头文件没有定义全局命名空 间, 必须使用namespace std,这样才能正确使用cout。
PS:namespace的使用:
C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。由于namespace的概念,使用C++标准程序库的任何标识符时,可以有三种选择:
1、直接指定标识符。例如std::ostream而不是ostream。完整语句如下:
std::cout << std::hex << 3.4 << std::endl;
2、使用using关键字。
using std::cout;
using std::endl;
以上程序可以写成
cout << std::hex << 3.4 << endl;
3、最方便的就是使用using namespace std;
例如:
#include
#include
#include
using namespace std
这样命名空间std内定义的所有标识符都有效(曝光)。就好像它们被声明为全局变量一样。那么以上语句可以如下写:
cout << hex << 3.4 << endl;因为标准库非常的庞大,所程序员在选择的类的名称或函数名时就很有可能和标准库中的某个名字相同。所以为了避免这种情况所造成的名字冲突,就把标准库中的一切都被放在名字空间std中。但这又会带来了一个新问题。无数原有的C++代码都依赖于使 用了多年的伪标准库中的功能,他们都是在全局空间下的。 所以就有了和 等等这样的头文件,一个是为了兼容以前的C++代码,一个是为了支持新的标准。命名空间std封装的是标准程序库的名称,标准程序库为了和以前的头文件区别,一般不加”.h”。


Tags in this post...

面试题 相关文章推荐
Weblogic的布署方式
Aug 23 面试题
Java里面StringBuilder和StringBuffer有什么区别
Jun 06 面试题
空字符串(“”)和null的区别
Nov 13 面试题
一套C++笔试题面试题
Jun 06 面试题
解释一下Windows的消息机制
Jan 30 面试题
.net面试题
Dec 22 面试题
最新远光软件笔试题面试题内容
Nov 08 面试题
三维科技面试题
Jul 27 面试题
ASP.NET中的身份验证有那些
Jul 13 面试题
What's the difference between an interface and abstract class? (接口与抽象类有什么区别)
Oct 29 面试题
如何手工释放资源
Dec 15 面试题
方正Java笔试题
Jul 03 面试题
经典c++面试题六
Jan 18 #面试题
在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern "C"
Aug 09 #面试题
下面关于"联合"的题目的输出是什么
Aug 06 #面试题
"引用"与指针的区别是什么
Sep 07 #面试题
经典c++面试题五
Dec 17 #面试题
经典c++面试题四
May 14 #面试题
"引用"与多态的关系
Feb 01 #面试题
You might like
Win2003服务器安全加固设置--进一步提高服务器安全性
2007/05/23 PHP
自定义session存储机制避免会话保持问题
2014/10/08 PHP
PHP+Ajax实现的博客文章添加类别功能示例
2018/03/29 PHP
Thinkphp 在api开发中异常返回依然是html的解决方式
2019/10/16 PHP
NiftyCube——轻松实现圆角边框
2007/02/20 Javascript
学习ExtJS TextField常用方法
2009/10/07 Javascript
什么是json和jsonp,jQuery json实例详详细说明
2012/12/11 Javascript
jQuery实现折线图的方法
2015/02/28 Javascript
jquery ztree实现模糊搜索功能
2016/02/25 Javascript
js仿支付宝填写支付密码效果实现多方框输入密码
2016/03/09 Javascript
jQuery实现简单滚动动画效果
2016/04/07 Javascript
JavaScript触发onScroll事件的函数节流详解
2016/12/14 Javascript
深入理解Javascript中的观察者模式
2017/02/20 Javascript
js获取元素的偏移量offset简单方法(必看)
2017/07/05 Javascript
angular内置provider之$compileProvider详解
2017/09/27 Javascript
微信小程序textarea层级过高的解决方法
2019/03/04 Javascript
Vue实现数据请求拦截
2019/10/23 Javascript
JavaScript canvas绘制圆弧与圆形
2020/02/18 Javascript
前端vue+elementUI如何实现记住密码功能
2020/09/20 Javascript
Python使用Supervisor来管理进程的方法
2015/05/28 Python
Python通过OpenCV的findContours获取轮廓并切割实例
2018/01/05 Python
python中找出numpy array数组的最值及其索引方法
2018/04/17 Python
对numpy中布尔型数组的处理方法详解
2018/04/17 Python
Python在for循环中更改list值的方法【推荐】
2018/08/17 Python
django表单的Widgets使用详解
2019/07/22 Python
Python生成器常见问题及解决方案
2020/03/21 Python
pytorch 多分类问题,计算百分比操作
2020/07/09 Python
CSS3中的content属性使用示例
2015/07/20 HTML / CSS
日本最新流行服饰网购:Nissen
2016/07/24 全球购物
教师求职自荐信
2014/03/09 职场文书
房产公证书范本
2014/04/10 职场文书
就业协议书范本
2014/04/11 职场文书
责任心演讲稿
2014/05/14 职场文书
求职信结尾怎么写
2014/05/26 职场文书
自我检讨书范文
2015/01/28 职场文书
centos环境下nginx高可用集群的搭建指南
2022/07/23 Servers