初学者肯定对命名空间感觉很神秘很难理解,其实是比较简单的,只是比较正规的解释都很难懂。那么我今天就和大家用通俗的方法来解释下吧。
想比大家都听过相同的地名吧!
比如:浙江的温州有水头镇,福建泉州南安也有水头镇,还有其他地方也有水头镇。
那么有一个人和你说水头镇的时候你知道哪个水头镇吗?同样的你应该也听过不同班的同学有相同的名字吧?那么你是怎么区分他们两个人呢?
这时候我们就要在前加一个修饰的词来区别不同的地方和不同的人。
而用来修饰的这个词就是namespace。
namespace 福建
{
namespace 南安市
{
namespace 水头镇
{
}// namespace 水头镇
}// namespace 南安市
}//namespace 福建
namespace 浙江省
{
namespace 温州市平阳县
{
namespace 水头镇
{
}// namespace 水头镇
}// namespace 温州市平阳县
}//namespace 浙江省
namespace 广东
{
namespace 佛冈县
{
namespace 水头镇
{
}// namespace 水头镇
}// namespace 佛冈县
}//namespace 广东
当我要叫浙江省的水头镇的时候,我就提前在前面和你申明我要叫的人是浙江的水头镇,提前申明用的是:using namespace
using namespace 浙江省;
using namespace 温州市平阳县;
水头镇是一个全国百强镇。//这里的水头镇就是指浙江省温州市平阳县的水头镇了,因为前面已经用using namespace提前申明了。
这样后面的代码没有特殊说明就是浙江的水头镇了。当然你突然你想提及广东的水头镇,这时候你就需要加前面的修饰词了,修饰词之间用两个英文冒号隔开,广东:: 佛冈县::水头镇。有点类似写新闻时,为了简写,经常写“下同”,比如广东省珠海格力电器有限公司(简称格力电器,下同)。
讲了这么多,我们来看一个真实的代码:
//第1种写法使用提前申明using namespace
#include<iostream>
using namespace std;
int main()
{
cout<<"Nice to meet you!"<<endl;
return 0;
}
//第2种写法使用不提前申明
#include<iostream>
int main()
{
std::cout<<"Nice to meet you!"<<std::endl;
return 0;
}
第一种方法就是提前告诉你,我接下来要用的cout就是标准库std下面的 cout 和 endl,而不是其他库的cout 和 endl 。第二种方法不提前告诉你使用标准库std下的cout,所以不能简写。
这样解释不知道你听懂了吗?感觉浅显易懂就点个赞吧,你的支持是博主继续写文章的动力!