玩c++的人都知道,"using namespace std;"这里面就有一个“namespace”,这句代码的含义是“打开std这个命令空间”,当然。也可以不加这一句,在接下来的存在于std命令空间里的函数和变量开头都得加个“std::”如下:
#include <iostream>
int main()
{
std::cout<<"hellow world!";
}
而在开头加上"using namespace std;"后,如下:
#include <iostream>
using namespace std;
int main()
{
cout<<"hellow world!";
}
这样,你就可以发现,在两次对比中,有"using namespace std;"的在main函数中少打了std::,第二个没有"using namespace std;"的,就多打了std::,所以可以断定,“using namespace”就像#include一样,只不过是用于打开一个库里面的一个命令空间,简单来说,就是个大房子,大房子就是一个库,一个个小函数就是大房子里的小隔间,而有些大房子把一些小房子分到一个种类,按种类划分它,这样,单独找它就会变得简单多了。c++中的namespace也是如此,我创建了一个名为space的命令空间,如下:
namespace space
{
}
//提示:namespace是个关键字,可不是XXX库里的。
OK,回归正题,命令空间的里面也可以创建函数,现在,我要在命令空间spaced的里面创建一个名为MAIN的变量,如下:
namespace space
{
int MAIN;
}
好,既然我已经在"space"命令空间里创建了“MAIN”变量,那么我要打开它,使用在它里面的MAIN,怎么办?没关系,我有两种方法:
1,老老实实补全变量地址
namespace space
{
int MAIN;
}
int main()
{
space::MAIN+=11;//这里给他加11
}
2,开局开命令空间
namespace space{
int MAIN;
}
using namespace space;//后面的“space是要打开的命令空间名
int main()
{
MAIN+=11;//因为开局已经打开,所以现在可以使用;
}
不过命令空间必须是全局性的,把它放到任意一个函数内它都会报错。
//小贴士:可以在命令空间内创建命令空间,玩套娃,如下:
namespace space
{
namespace a
{
int y;
}
}
ok,本文章先到这里,下期不见不散!