今天在linux环境系编译cpp文件,发现当用cout和cin时不能用,于是就加了#include <iostream>还是不行,最后发现:
1.编译cpp也就是C++文件时,要用g++来编译
2.为什么加的头文件不是iostream.h呢----
#include <iostream.h>非标准输入输出流 #include <iostream>标准输入输出流 C++中为了避免名字定义冲突,特别引入了“名字空间的定义”,即namespace。当代码中用<iostream.h>时,输出可直接引用cout<<x;//<iostream.h>继承C语言的标准库文件,未引入名字空间定义,所以可直接使用。当代码中引入<iostream>时,输出需要引用std::cout<<x;如果还是按原来的方法就会有错,所以此时据需要用using namespace std来简化cout的用法。
3.namespace的含义:比如一个文件里要调用a.h和b.h,但是在这两个.h里面都有同样的定义比如CLASS MATE,那现在如果把这两个头文件都加进去,肯定会报错,所以这时定义两个命名空间的话,是不是就可以用两个namespace来访问这两个CLASS,现在知道了namespace的含义了。
那std的含义是用于区别iostream.h和iostream两个头文件的命名空间