• C++ 内接连与外接连


    1、内连接与外连接的最大区别是其查找某个定义时,所采用的策略。

       内连接:

        对这个定义的访问被局限在当前编译单元,其他编译单元无法访问,所以在连接时,它不会和其它的编译对象(.o/.obj)对象作比较,所以这些对象,也不能通过extern来访问。(static、const、类的成员/函数)

       外连接:

        可被其他单元访问,那么在连接时,会在其它编译对象中查找,判断是否重复,是否被定义。

    2、外连接:

      即在声明时使用extern,并给出定义,在其它文件中使用时,使用extern加上声明就可

      如:

      在 1.cpp:

      extern int num = 111;

      void Test(){}

      在 2.cpp:

      extern int num; // 此处引用1.cpp的num

      extern void Test();

    3、内连接:

      在1.cpp中:

      static int a = 3;

      const int b = 4;

      class A

      {

        int c;

        void Test(){}

      };

      在2.cpp中:

      static int a = 5;

      const int b = 6;

      class B

      {

        int c;

        void Test(){}

      };

      此时不会报重复定义的错误,因为其查找就在当前文件中,不会去管其它文件中的定义。

  • 相关阅读:
    学习笔记—Node之读取流的使用与实现
    macbook双系统用U盘离线安装 win10
    CF1634E Fair Share
    CF1632E Distance Tree
    CF1630D Flipping Range
    K8S部署之VMWare网络拓扑踩坑
    ArrayList中的遍历删除
    postgresql提权
    Sqlite数据库的Update知多少?
    C#屏蔽系统热键Ctrl+Alt+Delete的代码尝试。(已修改bug)
  • 原文地址:https://www.cnblogs.com/wang-can/p/3704866.html
Copyright © 2020-2023  润新知