namespace是c++中的名字空间,主要是在项目开发中,代码量很大,每个人定义的变量或者函数有可能发生同名冲突,为了解决这个问题,将每个人同名的变量放在每个人自己的名字空间,而与全局的空间隔开,本质是对全局变量的细分。
使用方式:
1.声明格式如下
namespace 空间名 {
};
例如,c++标准名字空间std,其实原型如下
namespace std {
常量;
变量;
结构;
类;
.....
}
2.使用格式
方式一:using namespace std;
cout<<"std namespace"<<endl;
方式二:std::cout<<"std namespace"<<endl;
生活中我们常常会遇到如下问题:
owner1定义了tv变量,owner2也定义了tv变量,我们要输出owner1和owner2的tv变量值,这是如果不用名字空间,则编译器不知道到底输出的是谁的tv值,就会报错,而是用namespace就可以很好的解决
#include <iostream>
using namespace std;
namespace Owner1 {
char* tv = "TCL";
};
namespace Owner2 {
char* tv = "SONY";
};
int main(int argc,char *argv[])
{
// cout<<"owner1:"<<Owner1::tv<<endl;
using namespace Owner1;
cout<<"owner1:"<<tv<<endl;
cout<<"owner2:"<<Owner2::tv<<endl;
/*error*/
// using namespace Owner2;
// cout<<"owner2:"<<tv<<endl;
return 0;
}