引例:
#include<iostream> int main() { std::cout<<"i love C++"; std::cout<<std::endl; return 0; }
1.std是什么?
std:: 是个名称空间标示符,C++标准库中的函数或者对象都是在命名空间std中定义的,所以我们要使用标准函数库中的函数或对象都要使用std来限定。
对象count是标准函数库所提供的对象,而标准库在名字空间中被指定为std,所以在使用cout的时候要加上std::。这样编译器就会明白我们调用的cout是名字空间std中的cout。
2.为什么将cout放到名字空间std中?
是因为像cout这样的对象在实际操作中或许会有好几个,比如说你自己也可能会不小心定义了一个对象叫cout,那么这两个cout对象就会产生冲突。
3.std都是什么时候使用?
一般来说,std都是要调用C++标准库时,要写上std;
使用非标准库文件iostream.h,不用写。
比如上面引例这样改写就不需要std:
#include<iostream> int main() { cout<<"i love C++"; cout<<endl; return 0; }
当然还有一种方法:
在main函数的上面使用两行语句:
using std::cout; using std::endl;
那么cout和endl前面就不需要std::
比如这样改写:
#include<iostream> using std::cout; using std::endl; int main() { cout<<"i love C++"; cout<<endl; return 0; }
其实还有种更简便的方法,就是直接使用using namespace std来代替using std::cout和using std::endl。
using namespace std 告诉编辑器我们将要使用空间std中的函数或者对象。
所以cout和endl前面不用注明它们是std这个名字空间中的cout和endl。
#include<iostream> using namespace std; int main() { cout<<"i love C++"; cout<<endl; return 0; }