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的面试题
May 19 面试题
如何减少垃圾回收让内存更加有效使用
Oct 18 面试题
JAVA的事件委托机制和垃圾回收机制
Sep 07 面试题
static关键字的用法
Oct 07 面试题
益模软件Java笔试题
Mar 27 面试题
请解释接口的显式实现有什么意义
May 26 面试题
C#面试问题
Jul 29 面试题
const和static readonly区别
May 20 面试题
当当网软件测试笔试题
Nov 24 面试题
介绍一下EJB的体系结构
Aug 01 面试题
介绍一下mysql的日期和时间函数
Mar 28 面试题
J2EE是技术还是平台还是框架
Aug 14 面试题
经典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可能遇到的问题“无法载入mysql扩展” 的解决方法
2007/04/16 PHP
php实现图片缩放功能类
2013/12/18 PHP
PHP删除指定目录中的所有目录及文件的方法
2015/02/26 PHP
基于PHP给大家讲解防刷票的一些技巧
2015/11/18 PHP
PHP中SQL查询语句的id=%d解释(推荐)
2016/12/10 PHP
详解PHP中的 input属性(隐藏 只读 限制)
2017/08/14 PHP
Laravel 类和接口注入相关的代码
2019/10/15 PHP
jquery蒙版控件实现代码
2010/12/08 Javascript
JavaScript中OnLoad几种使用方法
2012/12/15 Javascript
动态标签 悬停效果 延迟加载示例代码
2013/11/21 Javascript
JS建造者模式基本用法实例分析
2015/06/30 Javascript
Node.js静态文件服务器改进版
2016/01/10 Javascript
javascript显示上周、上个月日期的处理方法
2016/02/03 Javascript
巧方法 JavaScript获取超链接的绝对URL地址
2016/06/14 Javascript
AngularJS中watch监听用法分析
2016/11/04 Javascript
js脚本编写简单刷票投票系统
2017/06/27 Javascript
vue单页应用的内存泄露定位和修复问题小结
2019/08/02 Javascript
JavaScript数组排序小程序实现解析
2020/01/13 Javascript
javascript设计模式 ? 命令模式原理与用法实例分析
2020/04/20 Javascript
[00:35]2016完美“圣”典风云人物:冷冷宣传片
2016/12/08 DOTA
Python字典简介以及用法详解
2016/11/15 Python
Pycharm 2020年最新激活码(亲测有效)
2020/09/18 Python
python获取栅格点和面值的实现
2020/03/10 Python
python 制作简单的音乐播放器
2020/11/25 Python
简单html5代码获取地理位置
2014/03/31 HTML / CSS
JustFab加拿大:女鞋、靴子、手袋和服装在线
2018/05/18 全球购物
Nasty Gal英国:美国女性服饰销售网站
2021/03/02 全球购物
酒店行政人事部经理职务说明书
2014/02/26 职场文书
2014年大学生党课心得体会范文
2014/03/29 职场文书
2014年巴西世界杯口号
2014/06/05 职场文书
学校读书活动总结
2014/06/30 职场文书
2014年房地产个人工作总结
2014/12/20 职场文书
结婚司仪主持词
2015/06/29 职场文书
2016全国“质量月”活动标语口号
2015/12/26 职场文书
python 单机五子棋对战游戏
2022/04/28 Python
MYSQL事务的隔离级别与MVCC
2022/05/25 MySQL