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...

面试题 相关文章推荐
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类
Feb 06 面试题
JSF如何进行表格处理及取值
Aug 06 面试题
如何提高SQL Server的安全性
Jul 25 面试题
武汉英思工程科技有限公司&ndash;ORACLE面试测试题目
Apr 30 面试题
3个CCIE对一个工程师的面试题
May 06 面试题
C#里面如何判断一个Object是否是某种类型(如Boolean)?
Feb 10 面试题
飞利信loadrunner和软件测试笔试题
Sep 22 面试题
山海经纬软件测试笔试题和面试题
Apr 02 面试题
EJB实例的生命周期
Oct 28 面试题
用Java语言将一个键盘输入的数字转化成中文输出
Jan 25 面试题
Java程序员常见面试题
Jul 16 面试题
Unix控制后台进程都有哪些进程
Sep 22 面试题
经典c++面试题六
Jan 18 #面试题
在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern "C"
Aug 09 #面试题
下面关于"联合"的题目的输出是什么
Aug 06 #面试题
"引用"与指针的区别是什么
Sep 07 #面试题
经典c++面试题五
Dec 17 #面试题
经典c++面试题四
May 14 #面试题
"引用"与多态的关系
Feb 01 #面试题
You might like
php file_put_contents()功能函数(集成了fopen、fwrite、fclose)
2011/05/24 PHP
windows7下安装php的imagick和imagemagick扩展教程
2014/07/04 PHP
PHP自定义多进制的方法
2016/11/03 PHP
Laravel等框架模型关联的可用性浅析
2019/12/15 PHP
JavaScript 事件参考手册
2008/12/24 Javascript
Javascript 兼容firefox的一些问题
2009/05/21 Javascript
如何确保JavaScript的执行顺序 之jQuery.html深度分析
2011/03/03 Javascript
JavaScript高级程序设计阅读笔记(六) ECMAScript中的运算符(二)
2012/02/27 Javascript
javascript学习笔记--数字格式类型
2014/05/22 Javascript
基于JavaScript实现的快速排序算法分析
2017/04/14 Javascript
Bootstrap响应式导航由768px变成992px的实现代码
2017/06/15 Javascript
js实现图片上传预览原理分析
2017/07/13 Javascript
详解从Vue.js源码看异步更新DOM策略及nextTick
2017/10/11 Javascript
在Vue环境下利用worker运行interval计时器的步骤
2019/08/01 Javascript
addEventListener()和removeEventListener()追加事件和删除追加事件
2020/12/04 Javascript
[40:57]TI4 循环赛第二日 iG vs EG
2014/07/11 DOTA
python执行外部程序的常用方法小结
2015/03/21 Python
Python使用matplotlib实现在坐标系中画一个矩形的方法
2015/05/20 Python
python3 requests中使用ip代理池随机生成ip的实例
2018/05/07 Python
Python 网络爬虫--关于简单的模拟登录实例讲解
2018/06/01 Python
Python 实现数据结构-循环队列的操作方法
2019/07/17 Python
python网络编程之多线程同时接受和发送
2019/09/03 Python
Python3基于plotly模块保存图片表格
2020/08/03 Python
python爬虫判断招聘信息是否存在的实例代码
2020/11/20 Python
CSS去掉A标签(链接)虚线框的方法
2014/04/01 HTML / CSS
html5 canvas简单封装一个echarts实现不了的饼图
2018/06/12 HTML / CSS
英国Iceland杂货店:网上食品购物
2020/12/16 全球购物
SQL Server的固定数据库角色都有哪些?对应的服务器权限有哪些?
2013/05/18 面试题
温馨提示标语
2014/06/26 职场文书
装修活动策划方案
2014/08/27 职场文书
农业局党的群众路线教育实践活动整改方案
2014/09/20 职场文书
2014年学生会部门工作总结
2014/11/07 职场文书
项目经理助理岗位职责
2015/04/13 职场文书
html5实现点击弹出图片功能
2021/07/16 HTML / CSS
悬疑名作《朋友游戏》动画无字ED宣传片 新角色公开
2022/04/13 日漫
python神经网络 使用Keras构建RNN训练
2022/05/04 Python