@[Using namespace std的含义及用法)
(菜鸟的第一篇创作博客,虽然很低端,但是希望各路大佬支持)
Using namespace std详解
本菜鸡刚学C++的时候,就和这个无法理解的using namespace std杠上了,不懂却要想要搞懂,结果当时连"cout"是啥都不知道的我就硬是钻研,结果懵了。
现在也学了一段时间了,那么我就来讲讲(其实是为了自己记忆·手动狗头)
这么说吧,在软件开发的过程中,往往有很多人的参与,每个人分配的任务之中可能会存在一些相似的部分,就可能会造成变量的命名和函数的命名有一些重复。那么程序跑起来的时候就可能会发生冲突和错误。为了避免这个情况的发生,C++就增加了命名空间的这一特性。每个人使用不同的命名空间,那么就不会造成一片混乱了。C++把所有函数和变量和和命名都放在了一个叫做std(标准命名空间)的命名空间(namespace)里。所以我们在用cout的时候要写成std::cout才可以正常使用。
来一段代码康康
#include <iostream>
int main()
{
std::cout<<"Hello C++!"<<std::endl;
}
这样就可以输出语句了!(std::endl 是换行符,说明endl也是在std的命名空间内的)
但是呢,由于每次都写std很麻烦,所以也可以这么写:
#include<iostream>
using std::cout;
using std::endl;
using std::cin;
int main()
{
int a;
cout<<"Enter the value"<<endl;
cin>>a;
cout<<a<<endl;
}
这样就不用每次都把std::写上去了
但是这样还是比较麻烦,所以才有了我们所写的using namespace std; 这句话包含的内容是比较多的,所以要谨慎食用,不然还是会乱套~
值得注意的是,std里面包含了C++的全部函数和对象,甚至还包含了C中的一些函数,但是这些函数的头文件了都没有.h 所以有些.h的头文件(比如iostream.h)被预编译后再来一一句using namespace std是会报错的~
但是有一些不会报错,比如windows.h和time.h等等,这些属于C的写法,但也不会报错~
thanks!