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

面试题 相关文章推荐
J2SDK1.5与J2SDK5.0有什么区别
Sep 19 面试题
益模软件Java笔试题
Mar 27 面试题
描述内存分配方式以及它们的区别
Oct 15 面试题
.NET面试题:什么是值类型和引用类型
Jan 12 面试题
.NET remoting的两种通道是什么
May 31 面试题
什么是Connection-oriented Protocol/Connectionless Protocol面向连接的协议/无连接协议
Sep 06 面试题
网络技术支持面试题
Apr 22 面试题
什么是makefile? 如何编写makefile?
Aug 08 面试题
介绍一下结构化程序设计方法和面向对象程序设计方法的区别
Jun 27 面试题
说说在weblogic中开发消息Bean时的persistent与non-persisten的差别
Apr 07 面试题
ajax是什么及其工作原理
Feb 08 面试题
方正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
php的array_multisort()使用方法介绍
2012/05/16 PHP
thinkPHP5实现的查询数据库并返回json数据实例
2017/10/23 PHP
CheckBox 如何实现全选?
2006/06/23 Javascript
javascript加号&quot;+&quot;的二义性说明
2013/03/04 Javascript
js Array对象的扩展函数代码
2013/04/24 Javascript
JavaScript设置获取和设置属性的方法
2015/03/04 Javascript
jQuery实现首页图片淡入淡出效果的方法
2015/06/10 Javascript
原生态js,鼠标按下后,经过了那些单元格的简单实例
2016/08/11 Javascript
js removeChild 方法深入理解
2016/08/16 Javascript
Bootstrap页面标题Page Header的实现方法
2017/03/22 Javascript
jQuery EasyUI 为Combo,Combobox添加清除值功能的实例
2017/04/13 jQuery
JavaScript基本语法_动力节点Java学院整理
2017/06/26 Javascript
解决js ajax同步请求造成浏览器假死的问题
2018/01/18 Javascript
用vue2.0实现点击选中active其他选项互斥的效果
2018/04/12 Javascript
vue实现微信分享功能
2018/11/28 Javascript
Vuepress 搭建带评论功能的静态博客的实现
2019/02/17 Javascript
VUE动态生成word的实现
2020/07/26 Javascript
Python面向对象程序设计之继承与多继承用法分析
2018/07/13 Python
对Python中画图时候的线类型详解
2019/07/07 Python
python自动循环定时开关机(非重启)测试
2019/08/26 Python
Django 实现Admin自动填充当前用户的示例代码
2019/11/18 Python
在django中自定义字段Field详解
2019/12/03 Python
python使用for...else跳出双层嵌套循环的方法实例
2020/05/17 Python
详解Python中的文件操作
2021/01/14 Python
用Python实现定时备份Mongodb数据并上传到FTP服务器
2021/01/27 Python
HTML5 语音搜索(淘宝店语音搜素)
2013/01/03 HTML / CSS
Auchan Direct波兰:欧尚在线杂货店
2016/10/19 全球购物
全世界最美丽的四星和五星级酒店预订:Prestigia.com
2017/11/15 全球购物
法学毕业生自我鉴定
2013/11/08 职场文书
便利店的创业计划书
2014/01/15 职场文书
新年团拜会主持词
2014/04/02 职场文书
开学典礼演讲稿
2014/05/23 职场文书
年度安全生产目标责任书
2014/07/23 职场文书
乡镇干部党的群众路线教育实践活动个人对照检查材料
2014/09/24 职场文书
购房委托书
2014/10/15 职场文书
公安干警正风肃纪心得体会
2016/01/15 职场文书