首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

有了using namespace std,为何还要有#include<iostream>

2013-04-02 
有了using namespace std,为什么还要有#includeiostream??在学习标准c++时,说到C++重大改版后,将所有的i

有了using namespace std,为什么还要有#include<iostream>?

?

在学习标准c++时,说到C++重大改版后,将所有的iostream库中的定义都放入路std命名空间中,那么在写代码时既然有了using namespace std,为什么还要写#include<iostream>?

答:

调用任何函数都需要先声明(同一文件内的函数之间的调用可以不用写类似:int f();这样的声明语句,是因为这里定义即声明),那么声明的方法有两种(我知道的):直接将方法写在调用处的前面,或者用类似#include<iostream>的声明,#include<XXX>是一个宏,在预编译时,通过它将XXX文件中的文本直接复制粘贴到你需要调用的文件中,记住只是简单的文本粘贴。所以在预编译之后,这两种声明的方法最终的结果是一样的(起码在文本上看基本一样作用)。

但是using namespace YYY;可不是这样干的,它不是在预编译阶段处理的,是在编译阶段处理的,不会做简单的文本粘贴处理,这是和include的区别。

?

以上都是作为前提。

既然声明是必不可少的,那么using namespace std 之后为什么还要#include<iostream>?刚才说了,声明是需要写到具体的调用方文件中的,但是using namespace std做不到这点,所以只能用#include<iostream>,但是#include<iostream>的定义是在std命名空间中,所以又必须要using namespace std;

?

?this‘s all!

热点排行