• 命名空间


    如果我有两个库,两个库中都含有一个函数名字叫fun()

    那么当我在主函数调用 fun() 的时候编译器就没法判断我想调用的是哪一个函数

    所以我们可以用命名空间去区分。

    我们先定义一个命名空间

    namespace space1
    {
        void fun()
        {
            cout<<"in space 1"<<endl;
        }
    }

    这段代码就是将函数fun() 定义在了一个叫 space1 的命名空间里

    类似地,我们再写一个fun()

    namespace space2
    {
        void fun()
        {
            cout<<"in space 2"<<endl;
        }
    }

    我们可以这样调用这两个同名的函数

    int main(int argc, char const *argv[])
    {
        space1::fun();
        space2::fun();
        
    }

    输出如下:

    in space 1
    in space 2

    可以像 using namespace std 那样,告诉编译器一个默认的值

    using namespace space1;
    
    int main(int argc, char const *argv[])
    {
        fun();
    
    }

    打印结果就只是space1里面的函数了

    in space 1

    也可以嵌套命名空间

    namespace namespace_name1 {
       // 代码声明
       namespace namespace_name2 {
          // 代码声明
       }
    }

    使用

    // 访问 namespace_name2 中的成员
    using namespace namespace_name1::namespace_name2;
     
    // 访问 namespace:name1 中的成员
    using namespace namespace_name1

    示例:

    namespace space2
    {
        void fun()
        {
            cout<<"in space 2"<<endl;
        }
        namespace space3
        {
            void fun()
            {
                cout<<"in space 2::3"<<endl;
            }
        }
    }
    
    
    int main(int argc, char const *argv[])
    {
        space2::space3::fun();
    
    }

    或者

    using namespace space2::space3;
    
    int main(int argc, char const *argv[])
    {
        fun();
    
    }
  • 相关阅读:
    【必备】史上最全的浏览器 CSS & JS Hack 手册(转)
    iScroll4.2.5中的无法滑动或点击的解决方案(转)
    无障碍网页设计(WCAG2.0)
    大小端
    TCP报文结构
    A*
    shell中uniq与sort -u 两种去重的对别
    login流程
    类模板成员函数
    game 角色相关记录
  • 原文地址:https://www.cnblogs.com/qifeng1024/p/12643987.html
Copyright © 2020-2023  润新知