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

面试题 相关文章推荐
SQL中where和having的区别
Jun 17 面试题
抽象方法、抽象类怎样声明
Oct 25 面试题
关于Java String的一道面试题
Sep 29 面试题
"引用"与多态的关系
Feb 01 面试题
中间件分为哪几类
Mar 14 面试题
如何提高MySql的安全性
Jun 19 面试题
如何从一个文件档案的尾端新增记录
Dec 02 面试题
如何用Java判断一个文件或目录是否存在
Nov 19 面试题
Java语言的优势
Jan 10 面试题
关于Java finally的面试题
Apr 27 面试题
介绍下java.util.Arrays类
Oct 16 面试题
Java基础类库面试题
Sep 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 线程安全与非线程安全版本的区别深入解析
2013/08/06 PHP
php 批量替换html标签的实例代码
2013/11/26 PHP
Symfony2实现在controller中获取url的方法
2016/03/18 PHP
php 访问oracle 存储过程实例详解
2017/01/08 PHP
PHP中让json_encode不自动转义斜杠“/”的方法
2017/02/28 PHP
Yii2中简单的场景使用介绍
2017/06/02 PHP
js 动态选中下拉框
2009/11/26 Javascript
判断iframe是否加载完成的完美方法
2010/01/07 Javascript
css样式标签和js语法属性区别
2013/11/06 Javascript
javaScript 计算两个日期的天数相差(示例代码)
2013/12/27 Javascript
浅谈javascript 函数表达式和函数声明的区别
2016/01/05 Javascript
Vue.js 父子组件通讯开发实例
2016/09/06 Javascript
使用vue.js编写蓝色拼图小游戏
2017/03/17 Javascript
浅谈js中的this问题
2017/08/31 Javascript
微信小程序实现图片上传功能实例(前端+PHP后端)
2018/01/10 Javascript
js实现微信聊天效果
2020/08/09 Javascript
[04:21]狐狸妈带你到现场 DOTA2 TI中国区预选赛线下赛路线指引
2014/05/22 DOTA
浅谈Python中的可变对象和不可变对象
2017/07/07 Python
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
2018/01/24 Python
使用 Visual Studio Code(VSCode)搭建简单的Python+Django开发环境的方法步骤
2018/12/17 Python
在Python3 numpy中mean和average的区别详解
2019/08/24 Python
Python 进程操作之进程间通过队列共享数据,队列Queue简单示例
2019/10/11 Python
pytorch简介
2020/11/11 Python
Python基于execjs运行js过程解析
2020/11/27 Python
Web前端绘制0.5像素的几种方法
2017/08/11 HTML / CSS
美国二手奢侈品寄售网站:TheRealReal
2016/10/29 全球购物
海信商城:海信电视、科龙空调、容声冰箱官方专卖
2017/02/07 全球购物
澳大利亚儿童鞋在线:The Trybe
2019/07/16 全球购物
俄罗斯园林植物网上商店:Garshinka
2020/07/16 全球购物
毕业生自荐信的主要内容
2013/10/29 职场文书
实习单位接收函
2014/01/11 职场文书
学校消防安全制度
2014/01/30 职场文书
幼儿园爱国卫生月活动总结
2014/06/30 职场文书
美术专业自荐信
2014/07/07 职场文书
党的群众路线教育实践活动领导班子整改措施
2014/10/28 职场文书
毕业生政审意见范文
2015/06/04 职场文书