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!!!

当我们同时使用两个或更多命名空间,则可能会导致同名函数或变量冲突!

所以,请谨慎使用!!!

更完善的内容请见http://www.runoob.com/cplusplus/cpp-namespaces.html

posted @ 2019-03-10 10:32  Colin-Wang  阅读(406)  评论(0编辑  收藏  举报