CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  新手乐园

讨论:#include<iostream> using namespace std; & #include <iostream.h>

楼主zhongwei5695(威少求学C++)2005-04-24 20:31:02 在 C/C++ / 新手乐园 提问

请朋友们说说   哪一个用起来更优?  
  小弟觉的:  
  #include<iostream>    
  using   namespace   std;  
  打字比  
  #include   <iostream.h>  
  多^_^  
  但是前者比后者后出来,一定有他的原因  
  请高手讲解!! 问题点数:20、回复次数:20Top

1 楼llmsn("若虚"即"虚怀若谷"!!!)回复于 2005-04-24 20:32:51 得分 1

都一样的.Top

2 楼llmsn("若虚"即"虚怀若谷"!!!)回复于 2005-04-24 20:33:15 得分 1

只是后面的包含了一个std名字空间.Top

3 楼zhongwei5695(威少求学C++)回复于 2005-04-24 20:37:33 得分 0

为什么趋向标准的都用前者不用后者呢?Top

4 楼zhongwei5695(威少求学C++)回复于 2005-04-24 20:38:54 得分 0

请大家发表个人见鉴Top

5 楼zhousqy(标准C匪徒)(甩拉,甩拉)回复于 2005-04-24 20:39:24 得分 1

第一个Top

6 楼shazi_pig(傻子)回复于 2005-04-24 20:42:24 得分 2

名字空间很有用的,特别是大型工程,我个人认为大家用第一个。Top

7 楼zhongwei5695(威少求学C++)回复于 2005-04-24 21:24:56 得分 0

还有人发表意见么?Top

8 楼zhongwei5695(威少求学C++)回复于 2005-04-24 21:25:12 得分 0

大家可以说说喜欢使用哪一个Top

9 楼flying_dancing(小混混-_-)回复于 2005-04-25 01:04:30 得分 1

建议用前者               我知道是等价.........其他的不明白Top

10 楼Mypiger(深圳 step by step)回复于 2005-04-25 01:12:13 得分 2

都一样   就是涉及到命名空间的问题!Top

11 楼a112319124728(彪)回复于 2005-04-25 12:28:14 得分 1

upTop

12 楼Cuiql(向前冲,向后看)回复于 2005-04-25 12:43:47 得分 2

建议使用第一个.Top

13 楼liubingqian(海风)回复于 2005-04-25 13:08:21 得分 1

楼主自己已经回答这个问题了。  
  标准的原因。Top

14 楼whyglinux(山青水秀)回复于 2005-04-25 13:18:47 得分 3

<iostream.h>是C++标准制定之前使用的头文件,<iostream>是C++标准规定使用的形式(标准头文件)。因此,要写符合标准的程序就要使用后者。为了兼容以前的程序,一般编译器也允许使用前者,但是你应该知道这是不符合标准的,而且一些编译器已经不支持这种形式的头文件了。Top

15 楼dophin1003(浮云~~~)回复于 2005-04-25 16:12:51 得分 4

因为标准库中东西如此之多,你(或象你一样的其他什么人)所选择的类名或函数名就很有可能和标准库中的某个名字相同。为了避免这种情况所造成的名字冲突,实际上标准库中的一切都被放在名字空间std中(参见条款28)。但这带来了一个新问题。无数现有的C++代码都依赖于使用了多年的伪标准库中的功能,例如,声明在<iostream.h>,<complex.h>,<limits.h>等头文件中的功能。现有软件没有针对使用名字空间而进行设计,如果用std来包装标准库导致现有代码不能用,将是一种可耻行为。(这种釜底抽薪的做法会让现有代码的程序员说出比   "可耻"   更难听的话)  
   
  慑于被激怒的程序员会产生的破坏力,标准委员会决定为包装了std的那部分标准库构件创建新的头文件名。生成新头文件的方法仅仅是将现有C++头文件名中的   .h   去掉,方法本身不重要,正如最后产生的结果不一致也并不重要一样。所以<iostream.h>变成了<iostream>,<complex.h>变成了<complex>,等等。对于C头文件,采用同样的方法,但在每个名字前还要添加一个c。所以C的<string.h>变成了<cstring>,<stdio.h>变成了<cstdio>,等等。最后一点是,旧的C++头文件是官方所反对使用的(即,明确列出不再支持),但旧的C头文件则没有(以保持对C的兼容性)。实际上,编译器制造商不会停止对客户现有软件提供支持,所以可以预计,旧的C++头文件在未来几年内还是会被支持。  
   
  节选自《effective   c++》条款50:   提高对C++的认识Top

16 楼syd1207(既然选择远方,便只顾风雨兼程。。。)回复于 2005-04-25 16:16:52 得分 0

偶==>第二个!~Top

17 楼plovej(把自己变为挣钱的机器)回复于 2005-04-26 18:10:53 得分 0

恩,明白了Top

18 楼llf_hust()回复于 2005-04-26 18:43:21 得分 0

使用第一个Top

19 楼wovow(凉席)回复于 2005-04-26 22:42:54 得分 1

由于在各种C++实现中头文件的后缀各不相同因此标准C++头文件没有指定后缀    
  使用第一种形式。  
  无须吝啬,会带来很多方便。Top

20 楼moonranger(狂热的菜鸟)回复于 2005-04-27 19:54:39 得分 0

支持第二个!!  
  这是标准的C++,感觉舒服~~Top

相关问题

  • 关于#include<iostream> using namespace std;高手进
  • 怎样才能让vc6.0下也能用 #include <iostream> using namespace std; ?
  • 关于using namespace std;与<.h>之间的问题
  • 奇怪的问题,挑战高手,#include "iostream.h"和#include <iostream> using namespace std不一样
  • about "using namespace std"
  • using namespace std;说明已经引用了std命名空间,为什么还用#include包含<iostream>呢?
  • using namespace std??在线!
  • 关于 using namespace std
  • 关于std::__Fiopen 和using namespace
  • 求助:std::iostream的问题

关键词

  • c++
  • 文件
  • 编译器
  • 代码
  • 现有
  • 标准
  • 库
  • 头
  • 名字
  • 使用

得分解答快速导航

  • 帖主:zhongwei5695
  • llmsn
  • llmsn
  • zhousqy
  • shazi_pig
  • flying_dancing
  • Mypiger
  • a112319124728
  • Cuiql
  • liubingqian
  • whyglinux
  • dophin1003
  • wovow

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo