在标准C++以前,都是用#include<
iostream.h
>这样的写法的,因为要包含进来的头文件名就是
iostream.h
。标准C++引入了
名字空间
的概念,并把iostream等标准库中的东东封装到了std
名字空间
中,同时为了不与原来的头文件混淆,规定标准C++使用一套新的头文件,这套头文件的文件名后不加.h扩展名,如iostream、string等等,并且把原来
C标准库
的头文件也重新命名,如原来的
string.h
就改成cstring(就是把.h去掉,前面加上字母c),所以头文件包含的写法也就变成了#include <iostream>。
并不是写了#include<iostream>就必须用using namespace std;我们通常这样的写的原因是为了一下子把std
名字空间
的东东全部暴露到全局域中(就像是直接包含了
iostream.h
这种没有名字空间的头文件一样),使标准C++库用起来与传统的iostream.h一样方便。如果不用using namespace std;使用标准库时就得时时带上名字空间的全名,如std::cout << “hello” << std::endl;
#include “iostream”与#include<iostream>的区别:前者先在
当前目录
找iostream文件,找不到再去系统头文件路径找,后者反之。因此,做为一个良好的习惯,在包含系统头文件时尽量用<>,而在包含自己的工程中的头文件时用””。
<iostream>和<iostream.h>不一样,前者没有后缀,实际上,在编译器include文件夹里面可以看到,二者是两个文件,打开文件就会发现,里面的代码是不一样的。
后缀为.h的头文件c++标准已经明确提出不支持了,早些的实现将标准库功能定义在全局空间里,声明在带.h后缀的头文件里,c++标准为了和C区别开,也为了正确使用
命名空间
,规定头文件不使用后缀.h。
因此,当使用<iostream.h>时,相当于在c中调用库函数,使用的是全局
命名空间
,也就是早期的c++实现;当使用< iostream>的时候,该头文件没有定义全局
命名空间
,必须使用namespace std;这样才能正确使用cout。
#include <iostream.h>
using namespace std; 则出错
所以 要么写成
#include <iostream >
using namespace std;
要么写成
#include <iostream.h>
当然最好是前种
iostream.h
>这样的写法的,因为要包含进来的头文件名就是
iostream.h
。标准C++引入了
名字空间
的概念,并把iostream等标准库中的东东封装到了std
名字空间
中,同时为了不与原来的头文件混淆,规定标准C++使用一套新的头文件,这套头文件的文件名后不加.h扩展名,如iostream、string等等,并且把原来
C标准库
的头文件也重新命名,如原来的
string.h
就改成cstring(就是把.h去掉,前面加上字母c),所以头文件包含的写法也就变成了#include <iostream>。
并不是写了#include<iostream>就必须用using namespace std;我们通常这样的写的原因是为了一下子把std
名字空间
的东东全部暴露到全局域中(就像是直接包含了
iostream.h
这种没有名字空间的头文件一样),使标准C++库用起来与传统的iostream.h一样方便。如果不用using namespace std;使用标准库时就得时时带上名字空间的全名,如std::cout << “hello” << std::endl;
#include “iostream”与#include<iostream>的区别:前者先在
当前目录
找iostream文件,找不到再去系统头文件路径找,后者反之。因此,做为一个良好的习惯,在包含系统头文件时尽量用<>,而在包含自己的工程中的头文件时用””。
<iostream>和<iostream.h>不一样,前者没有后缀,实际上,在编译器include文件夹里面可以看到,二者是两个文件,打开文件就会发现,里面的代码是不一样的。
后缀为.h的头文件c++标准已经明确提出不支持了,早些的实现将标准库功能定义在全局空间里,声明在带.h后缀的头文件里,c++标准为了和C区别开,也为了正确使用
命名空间
,规定头文件不使用后缀.h。
因此,当使用<iostream.h>时,相当于在c中调用库函数,使用的是全局
命名空间
,也就是早期的c++实现;当使用< iostream>的时候,该头文件没有定义全局
命名空间
,必须使用namespace std;这样才能正确使用cout。
#include <iostream.h>
using namespace std; 则出错
所以 要么写成
#include <iostream >
using namespace std;
要么写成
#include <iostream.h>
当然最好是前种