zoukankan      html  css  js  c++  java
  • C++ Primer 关键概念

    记录 C++ Primer 中的一些关键概念

    关键概念:名字查找与继承

    理解函数调用的解析过程对于理解 C++ 的继承至关重要,假定我们调用 p->mem() 或 obj.mem() 则执行以下 4 个步骤:

    • 首先确定 p(或 obj )的静态类型。因为我们调用的是一个成员,所以该类型一定是个类类型。
    • 在 p(或 obj )的静态类型对应的类中查找 mem。如果找不到,则依次在基类中不断查找直至到达继承链的顶端。如果找遍了继承链还是没有找到,则编译器报错。
    • 一旦找到 mem 就进行常规的类型检查以确认对于当前找到的 mem,本次调用是否合法。
    • 假设调用合法,则编译器将根据调用的是否为虚函数而产生不同的代码:
      —— 如果 mem 是虚函数且是我们通过指针或引用进行调用的,则编译器产生的代码将在运行时确定到底运行该虚函数的哪个版本,依据是对象的动态类型。
      —— 反之,如果 mem 不是虚函数或不是通过指针或引用调用的,则编译器将直接产生一个常规的调用。
  • 相关阅读:
    0111. Minimum Depth of Binary Tree (E)
    0735. Asteroid Collision (M)
    0133. Clone Graph (M)
    1007. Minimum Domino Rotations For Equal Row (M)
    2018-8-10-win10-uwp-关联文件
    2018-2-13-win10-uwp-手动锁Bitlocker
    2018-2-13-win10-uwp-切换主题
    jquery开关灯
    jquery隔行变色
    jquery体验
  • 原文地址:https://www.cnblogs.com/Codroc/p/13558260.html
Copyright © 2011-2022 走看看