在C++中通过命名空间来避免命名冲突
类似java中包的概念来解决函数名冲突问题
namespace MQ
{
int g_variable;
class Person{
};
void test() {
}
}
int main(){
MQ::g_variable = 10;
MQ::Person *p = new MQ::Person();
MQ::test();
return 0;
}
//如果不想写MQ::,可以在头使用命名空间,但是当using多个命名空间后,在使用的时候需要指定使用哪个命名空间
using namespace MQ;
命名空间的嵌套
namespace MQ
{
int g_variable;
class Person{
};
void test() {
}
namespace Other{
void test();
}
}
int main(){
//使用test
MQ::Other::test();
return 0;
}
命名空间的合并
namespace MQ
{
void run();
}
namespace MQ
{
int g_variable;
}
//上面2个分开写和下面这样写没区别
namespace MQ
{
int g_variable;
void run();
}