乐趣区

关于程序员:那些令人迷惑的技术概念

本立而道生,根本的事件做好了,能力产生最高准则。作为程序员,特地是新人,有些类似相干的技术概念,有时候令人抓狂,特地是面试的时候。对技术概念的了解,在肯定水平上能反馈一个人的程度。以下是一些我已经蛊惑的技术概念做出的了解,可能还存在偏颇,就当抛砖引玉。


重载(Overload)、覆写(Override)、暗藏、重写(Overwrite)
  1. 重载
    在 OOP 里,重载是作用在同一个类的多个同名函数,这些同名函数领有不同的参数特色(参数的个数,类型),除此之外其余的特色无关紧要,如能够有不同的返回值类型。
  2. 覆写
    覆写是作用在继承体系里的不同类中,更具体来说是作用在子类,指的是子类对从父类继承来的 虚函数 做出合乎子类需要的批改,这样咱们能够说子类覆写了父类的函数,产生了父子两个不同的函数,父类对象调用的还是父类原来的函数,子类对象调用的将是覆写后的函数。
  3. 暗藏

    • 暗藏是作用在继承体系里的不同类中,跟覆写稍有区别,指的是子类对从父类继承来的 参数特色雷同非虚函数 或者 参数特色不同的同名函数 的批改,这样批改后,父类的函数对子类来说是暗藏的,不能够间接调用,相当于父类的函数从能够被子类继承的变成父类齐全公有的。
    • 从作用域的角度来说,局部变量在部分作用域暗藏全局变量的状况也属于暗藏

      int i = 1024;
      
      void swap(int& a, int& b)
      {
          int i = a; // 部分 i 暗藏全局 i
          a = b;
          b = i;
      }
      cout << i << endl; // 全局 i 
  4. 重写

    In computer data storage, overwriting is the process of replacing old information with new information.

    简略翻译一下,在计算机数据存储里,重写是一个将旧信息替换成新信息的处理过程。

  5. 区别

    • 重载和覆写的区别
      重载作用在同一个类(单个类),覆写作用在父子类(至多 2 个类)。
    • 覆写和暗藏的区别
      区别在于是否是参数特色雷同的虚函数。
    • 重写和其余三者的区别
      其中最令人蛊惑的是覆写和重写的区别,在 OOP 里,只有覆写,重写像是莫名其妙呈现的,从我集体的经验来说,齐全是本人给本人制作的麻烦。从狭义上来说,重载、覆写、暗藏都属于重写,因而,探讨重写和其余三者的区别是没有必要的。

并发、并行、串行

先论述一个重要概念,逻辑控制流 :过程为每个程序提供了一种假象,如同程序在独占地应用处理器。处理器中程序计数器(PC) 的指令序列叫做逻辑控制流。

  1. 并发
    一个逻辑控制流的执行在工夫上与另一个流重叠,称为并发流,这两个流被称为并发的运行。多个流并发地执行的个别景象称为并发。简略的说就是如果两个流在工夫上重叠,那么它们就是并发的。
  2. 并行
    如果两个流并发的运行在不同的处理器或者计算机上,那么它们是并行流。
  3. 串行
    单个逻辑控制流的不同局部或者多个逻辑控制流在运行上有先后顺序,即先运行 A,A 完结后能力运行 B,这样的执行形式称为串行。
  4. 区别

    • 并发和并行
      并行流是并发流的真子集。在资源短缺的条件下,两个逻辑控制流同时执行,则是并行,是并发的一个特例;资源有余的条件下,两个逻辑控制流交替执行。不论是同时执行,还是交替执行,都是并发。
    • 并行和串行
      逻辑控制流的执行形式不同,两个逻辑控制流 A、B,如果 A、B 在执行程序上,必须 A 先执行,B 期待 A 执行完结才能够执行,则是串行。A、B 在执行程序上不用期待对方执行完结,则是并行。

退出移动版