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面试题及答案-编程题
Oct 14 面试题
JAVA的事件委托机制和垃圾回收机制
Sep 07 面试题
Java面试题:请问一下代码输出是什么
May 27 面试题
简单说说tomcat的配置
May 28 面试题
函数只定义了一次, 调用了一次, 但编译器提示非法重定义了-什么问题?
Oct 03 面试题
ShellScript面试题一则-ShellScript编程
Mar 05 面试题
如何开发安全的AJAX应用
Mar 26 面试题
什么是lambda函数
Sep 17 面试题
String s = new String(“xyz”);创建了几个String Object?
Aug 05 面试题
线程问题:wait()方法是定义在哪个类里面
Jul 07 面试题
UNIX命令速查表
Mar 10 面试题
大唐面试试题(CPU,UNIX等等)
Jan 11 面试题
经典c++面试题六
Jan 18 #面试题
在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern "C"
Aug 09 #面试题
下面关于"联合"的题目的输出是什么
Aug 06 #面试题
"引用"与指针的区别是什么
Sep 07 #面试题
经典c++面试题五
Dec 17 #面试题
经典c++面试题四
May 14 #面试题
"引用"与多态的关系
Feb 01 #面试题
You might like
杏林同学录(六)
2006/10/09 PHP
php echo 输出字符串函数详解
2010/05/13 PHP
PHP文件操作实现代码分享
2011/09/01 PHP
SwfUpload在IE10上不出现上传按钮的解决方法
2013/06/25 Javascript
加载远程图片时,经常因为缓存而得不到更新的解决方法(分享)
2013/06/26 Javascript
js动态设置鼠标事件示例代码
2013/10/30 Javascript
手机端转盘抽奖代码分享
2015/09/10 Javascript
jQuery实现两款有动画功能的导航菜单代码
2015/09/16 Javascript
canvas 弹幕效果(实例分享)
2017/01/11 Javascript
js实现音频控制进度条功能
2017/04/01 Javascript
使用Vue完成一个简单的todolist的方法
2017/12/01 Javascript
nodejs实现的简单web服务器功能示例
2018/03/15 NodeJs
Node.js中console.log()输出彩色字体的方法示例
2019/12/01 Javascript
python连接字符串的方法小结
2015/07/13 Python
浅谈flask源码之请求过程
2018/07/26 Python
python对日志进行处理的实例代码
2018/10/06 Python
利用python读取YUV文件 转RGB 8bit/10bit通用
2019/12/09 Python
Python3将jpg转为pdf文件的方法示例
2019/12/13 Python
django Layui界面点击弹出对话框并请求逻辑生成分页的动态表格实例
2020/05/12 Python
python使用nibabel和sitk读取保存nii.gz文件实例
2020/07/01 Python
Python自动登录QQ的实现示例
2020/08/28 Python
圣诞树世界:Christmas Tree World
2019/12/10 全球购物
岗位职责风险点
2014/03/12 职场文书
毕业生就业协议书
2014/04/11 职场文书
关于孝道的演讲稿
2014/05/21 职场文书
幼儿园园长新年寄语2015
2014/12/08 职场文书
2015年元旦标语大全
2014/12/09 职场文书
2015年学校体育工作总结
2015/04/22 职场文书
2015年科研工作总结范文
2015/05/13 职场文书
不同意离婚上诉状
2015/05/23 职场文书
2016大学军训通讯稿
2015/11/25 职场文书
《槐乡的孩子》教学反思
2016/02/20 职场文书
当你找不到方向的时候,不妨读读刘备的一生
2019/08/05 职场文书
广告文案的撰写技巧(实用干货)
2019/08/23 职场文书
Python 正则模块详情
2021/11/02 Python
Java版 单机五子棋
2022/05/04 Java/Android