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 不是虚函数或不是通过指针或引用调用的,则编译器将直接产生一个常规的调用。
  • 相关阅读:
    o9.17,习题
    09.17,二维数组,地图
    09.15,一维数组,冒泡排序
    09.11 小兔 成兔问题
    09.01,学习习题
    FTPHelper
    Wpf发送接收 win32消息
    win32Helper
    xml 封装类
    C# 多进程安全
  • 原文地址:https://www.cnblogs.com/Codroc/p/13558260.html
Copyright © 2011-2022 走看看