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

面试题 相关文章推荐
垃圾回收的优点和原理。并考虑2种回收机制
Oct 16 面试题
不开辟用于交换数据的临时空间,如何完成字符串的逆序
Dec 02 面试题
杭州联环马网络笔试题面试题
Aug 04 面试题
面向对象概念面试题(.NET)
Nov 04 面试题
Hashtable 添加内容的方式有哪几种,有什么区别?
Apr 08 面试题
Linux内核产生并发的原因
Nov 08 面试题
如果让你测试一台高速激光打印机,你都会进行哪些测试
Dec 04 面试题
Static Nested Class 和 Inner Class的不同
Nov 28 面试题
如何防止同一个帐户被多人同时登录
Aug 01 面试题
日期和时间问题
Jan 04 面试题
J2EE中常用的名词进行解释
Nov 09 面试题
Java软件工程师综合面试题笔试题
Sep 08 面试题
经典c++面试题六
Jan 18 #面试题
在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern "C"
Aug 09 #面试题
下面关于"联合"的题目的输出是什么
Aug 06 #面试题
"引用"与指针的区别是什么
Sep 07 #面试题
经典c++面试题五
Dec 17 #面试题
经典c++面试题四
May 14 #面试题
"引用"与多态的关系
Feb 01 #面试题
You might like
Apache设置虚拟WEB
2006/10/09 PHP
php用户注册页面利用js进行表单验证具体实例
2013/10/17 PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
2014/10/15 PHP
jQueryPad 实用的jQuery测试工具(支持IE,chrome,FF)
2010/05/22 Javascript
javascript学习笔记(四) Number 数字类型
2012/06/19 Javascript
jQuery移动和复制dom节点实用DOM操作案例
2012/12/17 Javascript
Javascript跨域请求的4种解决方式
2013/03/17 Javascript
整理的比较全的event对像在ie与firefox浏览器中的区别
2013/11/25 Javascript
JS获取图片lowsrc属性的方法
2015/04/01 Javascript
深入理解Angular2 模板语法
2016/08/07 Javascript
Vue.js第四天学习笔记
2016/12/02 Javascript
anime.js 实现带有描边动画效果的复选框(推荐)
2017/12/24 Javascript
Angularjs中的$apply及优化使用详解
2018/07/02 Javascript
微信小程序前端自定义分享的实现方法
2019/06/13 Javascript
JS利用prototype给类添加方法操作详解
2019/06/21 Javascript
Vue组件模板的几种书写形式(3种)
2020/02/19 Javascript
vue 动态给每个页面添加title、关键词和描述的方法
2020/08/28 Javascript
详解Vue 的异常处理机制
2020/11/30 Vue.js
python下paramiko模块实现ssh连接登录Linux服务器
2015/06/03 Python
Python使用面向对象方式创建线程实现12306售票系统
2015/12/24 Python
Python实现递归遍历文件夹并删除文件
2016/04/18 Python
Python实现删除列表中满足一定条件的元素示例
2017/06/12 Python
Python使用reportlab模块生成PDF格式的文档
2019/03/11 Python
python字符串切割:str.split()与re.split()的对比分析
2019/07/16 Python
python 通过视频url获取视频的宽高方式
2019/12/10 Python
pytorch 获取tensor维度信息示例
2020/01/03 Python
Python如何实现远程方法调用
2020/08/07 Python
HTML5中外部浏览器唤起微信分享功能的代码
2020/09/15 HTML / CSS
台湾SHOPRO购物行家:亚洲首创影视.3C.家电.优质购物平台
2018/05/07 全球购物
毕业生找工作的求职信范文
2013/12/24 职场文书
银行演讲稿范文
2014/01/03 职场文书
护士感人事迹
2014/05/01 职场文书
酒店仓管员岗位职责
2015/04/01 职场文书
2015国庆节66周年标语
2015/07/30 职场文书
中小学教师继续教育心得体会
2016/01/19 职场文书
Mysql中调试存储过程最简单的方法
2021/06/30 MySQL