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 不是虚函数或不是通过指针或引用调用的,则编译器将直接产生一个常规的调用。
  • 相关阅读:
    安卓状态栏适配暗黑模式
    HtmlUnit框架:新建窗口与在新窗口打开链接
    Kotlin/Java下载文件(基于HttpClient Fluent API)
    导出可执行jar包
    Kotlin协程重要概念介绍
    MyBatis学习笔记
    执行上下文
    axios封装
    基础类型
    css特效基础
  • 原文地址:https://www.cnblogs.com/Codroc/p/13558260.html
Copyright © 2011-2022 走看看