zoukankan      html  css  js  c++  java
  • 命名空间

    如果我有两个库,两个库中都含有一个函数名字叫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();
    
    }
  • 相关阅读:
    mysql随笔 -- 基本sql语句
    jdbc驱动底层代码(通过控制器查询数据库的数据)
    项目实战:数据库,服务器,浏览器的登录页面的实现
    JSP随笔
    Session的学习
    servlet请求转发
    Servlet的流程总结
    collection 知识点3
    linux虚拟机,Centos7部署django项目
    python高级函数以及文件操作
  • 原文地址:https://www.cnblogs.com/qifeng1024/p/12643987.html
Copyright © 2011-2022 走看看