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

面试题 相关文章推荐
JAVA中的关键字有什么特点
Mar 07 面试题
编码实现字符串转整型的函数
Jun 02 面试题
实现向右循环移位
Jul 31 面试题
TCP/IP的分层模型
Oct 27 面试题
类和结构的区别
Aug 15 面试题
C#基础面试题
Oct 17 面试题
介绍一下grep命令的使用
Jun 12 面试题
中间件分为哪几类
Mar 14 面试题
AJax面试题
Nov 25 面试题
Java程序开发中如何应用线程
Mar 03 面试题
什么时候用assert
May 08 面试题
设置器与访问器的定义以及各自特点
Jan 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
php session安全问题分析
2011/06/24 PHP
php多种形式发送邮件(mail qmail邮件系统 phpmailer类)
2014/01/22 PHP
php定义数组和使用示例(php数组的定义方法)
2014/03/29 PHP
PHP批量生成静态HTML的简单原理和方法
2014/04/20 PHP
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
2014/11/19 PHP
用php代码限制国内IP访问我们网站
2015/09/26 PHP
php实现点击可刷新验证码
2015/11/07 PHP
PHP+MYSQL实现读写分离简单实战
2017/03/13 PHP
Win7环境下Apache连接MySQL提示连接已重置的解决办法
2017/05/09 PHP
php readfile()修改文件上传大小设置
2017/08/11 PHP
javascript 二分法(数组array)
2010/04/24 Javascript
基于jquery实现的表格分页实现代码
2011/06/21 Javascript
使用jquery获取网页中图片高度的两种方法
2013/09/26 Javascript
JavaScript数据结构与算法之栈与队列
2016/01/29 Javascript
一个用jquery写的判断div滚动条到底部的方法【推荐】
2016/04/29 Javascript
微信小程序实现图片预加载组件
2017/01/18 Javascript
php 解压zip压缩包内容到指定目录的实例
2018/01/23 Javascript
Vue实现Layui的集成方法步骤
2020/04/10 Javascript
ES6扩展运算符和rest运算符用法实例分析
2020/05/23 Javascript
[01:14]DOTA2亚洲邀请赛 ShowOpen
2015/02/07 DOTA
[37:35]DOTA2上海特级锦标赛A组资格赛#1 Secret VS MVP.Phx第二局
2016/02/25 DOTA
Python3爬虫爬取英雄联盟高清桌面壁纸功能示例【基于Scrapy框架】
2018/12/05 Python
如何实现Django Rest framework版本控制
2019/07/25 Python
如何在keras中添加自己的优化器(如adam等)
2020/06/19 Python
Python爬虫基于lxml解决数据编码乱码问题
2020/07/31 Python
python基于openpyxl生成excel文件
2020/12/23 Python
Flask处理Web表单的实现方法
2021/01/31 Python
Marlies Dekkers内衣荷兰官方网店:荷兰奢侈内衣品牌
2020/03/27 全球购物
新西兰最大、占有率最高的综合性药房:PharmacyDirect药房中文网
2020/11/03 全球购物
母亲节演讲稿
2014/05/27 职场文书
售后服务承诺函格式
2015/01/21 职场文书
研究生学习计划书应该怎么写?
2019/09/10 职场文书
从np.random.normal()到正态分布的拟合操作
2021/06/02 Python
python常见的占位符总结及用法
2021/07/02 Python
Python制作春联的示例代码
2022/01/22 Python
Shell脚本一键安装Nginx服务自定义Nginx版本
2022/03/20 Servers