关于C++中的头文件和名称空间~~~~

Jodiman 2007-03-25 09:59:10
我看到一些例程中,既包含了头文件 #include<iostream>,又作了using namespace std;
1、为什么要这样来做呢?不会重复引用吗?
2、有人告诉我在包含头文件时加个.h,如#include<iostream.h>,就可以不用using namespace std;了,请问是这样吗?为什么呢?

谢了
...全文
392 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
kwzzt_sy 2007-03-25
  • 打赏
  • 举报
回复
使用#include<iostream>但不写"using namespace std",那么你在程序中
使用cout,cin时就要这带上它们的名字空间即std::cin,std::cout,如果
你写上了"using namespace std"则在程序中就可以直接用cin,cout;至于那个
<iostream.h>,忘了它吧
Estfania 2007-03-25
  • 打赏
  • 举报
回复
Up
iu_81 2007-03-25
  • 打赏
  • 举报
回复
C 库头文件的C++名字总是以字母C 开头,后面是去掉后缀.h 的C名字。正如前面所解释的由于在各种C++实现中头文件的后缀各不相同,因此标准C++头文件没有指定后缀。

#include <cassert>
将cassert 的内容被读入到我们的文本文件中,但是由于所有的C++库名字是在名字空间std 中被定义的,因而在我们的程序文本文件中它们是不可见的,除非用下面的using 指示符显式地使其可见。
using namespace std;

而使用C 头文件的#include 指示符
#include <assert.h>
就可以直接在程序文本文件中使用名字assert() 而无需使用using 指示符
xlbdan 2007-03-25
  • 打赏
  • 举报
回复
1、为什么要这样来做呢?不会重复引用吗?

#include<iostream>
using namespace std;
这是C++的方式,
用的是C++才有的名字空间,
它把例如cin这样的函数都放到了iostream这个文件的std名字空间中,
所以就要用using namespace std;来使cin变得可以见到,

2、有人告诉我在包含头文件时加个.h,如#include<iostream.h>,就可以不用using namespace std;了,请问是这样吗?为什么呢?

#include<iostream.h>这种是C方式,它里面没有名字空间,所以根本不用using namespace std

所以说,两种方式都是可以的,或者#include<iostream.h>,或者#include<iostream>
using namespace std;连起来用
freeCodeSunny 2007-03-25
  • 打赏
  • 举报
回复
#include<iostream>如果加了、h就不用using namespace std; std是名空间,比如当程序大起来后难免会有名字重复的,加了std 就不存在这个问题了。
believefym 2007-03-25
  • 打赏
  • 举报
回复
<iostream>里的一些类都放到名字空间std里去了,是为了避免命名冲突
而iostream.h是老的写法,这个头文件并没有使用namespace,所以使用的时候不需要using。。。
但是推荐使用前者
happystarry 2007-03-25
  • 打赏
  • 举报
回复
up

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧