C++ 命名空间
相信OIER们都学到过
#include<iostream> using namespace std; int main(){ cout<<"Hello World"!; return 0; }
那么,namespace 是个什么东东呢?
具体来说,namespace命名空间就是申明变量和函数,类的空间。
在C中,是没有命名空间的。如果要定义一个函数或者一个变量,就会有重名的风险。
所以,传统C程序员都把变量或函数名定义得很长很长……
于是,C++中就出现了解决这种问题的方法。
我们在一个命名空间中定义的函数或变量,就不会与其他命名空间中的同名函数或变量冲突。
如何调用一个命名空间中的东西?
用 空间名字::函数或变量
e.g. std::cout
在一个代码文件中,main函数所被定义的地方就是全局命名空间
在 一个命名空间内,我们如果要显明地调用全局命名空间的东西,就要使用——
::code
e.g. ::printf("%d",10);
using 声明
如果每次都写一个std::cout,就会多打很多代码。
所以,我们可以先显式声明:
using std::cout;
之后,我们就可直接使用cout了。
using 指示
如果想要一次使用一个命名空间里面所有的东西怎么办?
那就来一个:
using namespace name;
name是namespace的名字。
如using namespace std;
但是,这using指示非常dangerous!!!
当我们同时使用两个或更多命名空间,则可能会导致同名函数或变量冲突!
所以,请谨慎使用!!!