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

面试题 相关文章推荐
PHP面试题及答案一
Jun 18 面试题
宝信软件JAVA工程师面试经历
Aug 19 面试题
abstract class和interface有什么区别?
Jan 03 面试题
super()与this()的区别
Jan 17 面试题
经典c++面试题六
Jan 18 面试题
Android笔试题总结
Nov 29 面试题
一套SQL笔试题
Aug 14 面试题
网络安全类面试题
Aug 01 面试题
internal修饰符起什么作用
Dec 16 面试题
介绍一下linux文件系统分配策略
Feb 25 面试题
中科方德软件测试面试题
Apr 21 面试题
国外的一些J2EE面试题一
Oct 13 面试题
经典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实现针对日期,月数,天数,周数,小时,分,秒等的加减运算示例【基于strtotime】
2017/04/19 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
tp5.1 实现setInc字段自动加1
2019/10/18 PHP
围观tangram js库
2010/12/28 Javascript
表单验证的完整应用案例探讨
2013/03/29 Javascript
Mac地址验证的javascript代码
2013/11/09 Javascript
node.js中的fs.link方法使用说明
2014/12/15 Javascript
jquery+json实现数据二级联动的方法
2015/11/28 Javascript
jquery dataview数据视图插件使用方法
2016/12/23 Javascript
javascript 删除数组元素和清空数组的简单方法
2017/02/24 Javascript
Nuxt.js实战详解
2018/01/18 Javascript
vue2.0+vue-dplayer实现hls播放的示例
2018/03/02 Javascript
详解Require.js与Sea.js的区别
2018/08/05 Javascript
vuex的数据渲染与修改浅析
2020/11/26 Vue.js
Django中对通过测试的用户进行限制访问的方法
2015/07/23 Python
Python聚类算法之凝聚层次聚类实例分析
2015/11/20 Python
Python卸载模块的方法汇总
2016/06/07 Python
利用Python爬取可用的代理IP
2016/08/18 Python
pandas 选择某几列的方法
2018/07/03 Python
详解python配置虚拟环境
2019/04/08 Python
python 实现矩阵填充0的例子
2019/11/29 Python
pymysql模块的操作实例
2019/12/17 Python
python编写一个会算账的脚本的示例代码
2020/06/02 Python
python判断是空的实例分享
2020/07/06 Python
Python unittest生成测试报告过程解析
2020/09/08 Python
python 实现图片修复(可用于去水印)
2020/11/19 Python
python中round函数保留两位小数的方法
2020/12/04 Python
大女孩胸罩:Big Girls Bras
2016/12/15 全球购物
英国最大的运动营养公司之一:LA Muscle
2018/07/02 全球购物
毕业设计计划书
2014/01/09 职场文书
高一家长会邀请函
2014/01/12 职场文书
喝酒检查书范文
2014/02/23 职场文书
毕业生如何写自我鉴定
2014/03/15 职场文书
施工质量承诺书范文
2014/05/30 职场文书
本科毕业生自荐信
2014/06/02 职场文书
2016简历自荐信优秀范文
2016/01/29 职场文书