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

面试题 相关文章推荐
您熟悉ORM(Object-Relation Mapping)吗?请谈谈您所理解的ORM
Feb 08 面试题
请写出char *p与"零值"比较的if语句
Sep 24 面试题
.NET面试题:什么是值类型和引用类型
Jan 12 面试题
杭州信雅达系统.NET工程师面试试题
Feb 08 面试题
介绍一下如何利用路径遍历进行攻击及如何防范
Jan 19 面试题
Linux管理员面试题 Linux admin interview questions
Jul 08 面试题
Linux开机引导的步骤是什么
Oct 19 面试题
Linux如何修改文件和文件夹的权限
Sep 05 面试题
介绍一下Linux内核的排队自旋锁
Aug 27 面试题
中科前程Java笔试题
Nov 20 面试题
信号量和自旋锁的区别?如何选择使用?
Sep 08 面试题
一道Delphi上机题
Jun 04 面试题
经典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 读取文件乱码问题
2010/02/20 PHP
PHP实现的多彩标签效果代码分享
2014/08/21 PHP
PHP向浏览器输出内容的4个函数总结
2014/11/17 PHP
PHP也能干大事之PHP中的编码解码详解
2015/04/20 PHP
php脚本守护进程原理与实现方法详解
2017/07/20 PHP
jquery判断checkbox(复选框)是否被选中的代码
2010/10/20 Javascript
解析Jquery的LigerUI如何实现文件上传
2013/07/09 Javascript
Javascript中查找不以XX字符结尾的单词示例代码
2013/10/15 Javascript
纯javascript实现简单下拉刷新功能
2015/03/13 Javascript
JS中产生标识符方式的演变
2015/06/12 Javascript
JS实现添加,替换,删除节点元素的方法
2016/06/30 Javascript
值得分享的bootstrap table实例
2016/09/22 Javascript
微信小程序 LOL 英雄介绍开发实例
2016/09/30 Javascript
表单元素值获取方式js及java方式的简单实例
2016/10/15 Javascript
jQuery插件zTree实现的基本树与节点获取操作示例
2017/03/08 Javascript
js实现年月日表单三级联动
2020/04/17 Javascript
Angular.js组件之input mask对input输入进行格式化详解
2017/07/10 Javascript
详解VUE-地区选择器(V-Distpicker)组件使用心得
2018/05/07 Javascript
JS apply用法总结和使用场景实例分析
2020/03/14 Javascript
jQuery实现二级导航菜单的示例
2020/09/30 jQuery
[56:38]DOTA2-DPC中国联赛正赛Aster vs Magma BO3 第一场 3月5日
2021/03/11 DOTA
Python函数式编程指南(一):函数式编程概述
2015/06/24 Python
Python迷宫生成和迷宫破解算法实例
2019/12/24 Python
使用python实现时间序列白噪声检验方式
2020/06/03 Python
英国最大的女士服装零售商:Bonmarché
2017/08/17 全球购物
伦敦哈德森鞋:Hudson Shoes
2018/02/06 全球购物
鼓励运动员的广播稿
2014/02/08 职场文书
元旦文艺汇演主持词
2014/03/26 职场文书
审计专业自荐信范文
2014/04/21 职场文书
围城读书笔记
2015/06/26 职场文书
2015年女工委工作总结
2015/07/27 职场文书
基于Redis实现分布式锁的方法(lua脚本版)
2021/05/12 Redis
Python连接Postgres/Mysql/Mongo数据库基本操作大全
2021/06/29 Python
关于maven依赖 ${xxx.version}报错问题
2022/01/18 Java/Android
Python获取指定日期是"星期几"的6种方法
2022/03/13 Python
Java 数据结构七大排序使用分析
2022/04/02 Java/Android