类似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(); }