#include用的是全局命名空间吗?

zhoeu 2008-04-08 07:28:35
1.#include<iostream.h>

2.#include<iostream>
using name space std

我想问下既然第二种用的是std这个命名空间,那么第一种用的是那个空间,是全局命名空间吗?

它们个自的cout又有什么区别?
...全文
115 8 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
taodm 2008-04-08
  • 打赏
  • 举报
回复
扔了那个还在#include <iostream.h> 的破书吧,不要用它们来浪费生命了。
ZiSheng 2008-04-08
  • 打赏
  • 举报
回复
还必须知道的是,如果编译器同时支持 <iostream>和<iostream.h>,那头文件名的使用会很微妙。例如,如果使用了#include <iostream>, 得到的是置于名字空间std(见条款28)下的iostream库的元素;如果使用#include <iostream.h>,得到的是置于全局空间的同样的元素。在全局空间获取元素会导致名字冲突,而设计名字空间的初衷正是用来避免这种名字冲突的发生。还有,打字时<iostream>比<iostream.h>少两个字,这也是很多人用它的原因。:)
-->摘自effective C++
pengzhixi 2008-04-08
  • 打赏
  • 举报
回复
发表于:2008-04-08 08:17:202楼 得分:0

iostream.h是标准前的东西,过时了,尽量别用了。
zhoeu 2008-04-08
  • 打赏
  • 举报
回复
谢谢各位热心人的回答!!!我已经明白了...

能举出一两个发生冲突的例子吗? 因为这样我可以更好地理解命名空间的必要性....
hityct1 2008-04-08
  • 打赏
  • 举报
回复

iostream.h是标准前的东西,过时了,尽量别用了。
hurryboylqs 2008-04-08
  • 打赏
  • 举报
回复
#include <iostream.h>
没有名字空间的说法吧?
dbkcpp 2008-04-08
  • 打赏
  • 举报
回复
iostream.h c++标准之前的东西,全局的,
而iostream 是命名空间std下的
ppp_10001 2008-04-08
  • 打赏
  • 举报
回复
#include <iostream.h>是从前的写法
#include <iostream>才是正规的写法
cout没什么区别
只是你不能写成
using name space std
而应写成
using namespace std;
最好写成
using std::cout;
相关推荐
发帖
C++ 语言

6.3w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
帖子事件
创建了帖子
2008-04-08 07:28
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下