C++中的命名空间

在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();
} 
上一篇:css2


下一篇:如何用Serverless让SaaS获得更灵活的租户隔离和更优的资源开销