`
switchlau
  • 浏览: 54143 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

杂记——《Inside The C++ Object Model》之四

阅读更多
  1. 每一个nonstatic data member的offset在编译期即可获得,即使它属于base class
  2. 通过对象和通过对像指针对于data member的存取操作,当data member是一个struct member,class member,单一继承、多重继承的情况完全一样,当data member是一个来自virtual base class的member的时候,则存在差异
  3. static data member存放在数据区,并不算作class的大小的组成部分
  4. C++语言保证 出现在derived class的base class subobject有其完整原样性
  5. static member function
    • 不能是const virtual 和volatile
    • 不能直接存取class中的nonstatic member
    • 不需经由class object调用

  6. virtual base class constructor 被调用的时机:只有当一个完整的class object被定义出来,它才会被调用;如果object只是某个完整object的subobject,它就不会被调用
  7. 临时性对象被摧毁的时机
    • 应该是对完整表达式求值过程中的最后一个步骤,该完整表达式造成临时对象的产生。所谓完整表达式,是指被涵括的表达式中最外围的那个. [p273]
    • 凡是含有表达式执行结果的临时性对象,应该保存到object 的初始化操作完成为止。[P274]
    • 如果一个临时性对象被绑定于一个reference,对象将残留,直到被初始化之reference的生命结束,或直到临时对象的生命范畴结束——视哪一种情况先到而定。[p275]
  8. 面向对象设计所需的多态性质,需要通过 pointer 或者 reference 才能体现。
  9. 转型(Cast)是一种编译器指令,大部分情况下它并不改变一个指针所含的地址它只影响“被指出之内存的大小和其内容”的解释方式。void* 指针只能够含有一个地址,而不能通过它操作所指的对象。

 

分享到:
评论

相关推荐

    CPP杂记——移动构造函数中需要注意的问题

    在C++编程中,移动构造函数是一个非常重要的概念,特别是在C++11及以后的版本中。移动构造函数是为了解决拷贝构造函数在处理动态分配资源时效率低下问题而引入的。本文将深入探讨移动构造函数及其使用中需要注意的...

    oracle 9i杂记

    《Oracle 9i杂记——探索PLSQL的世界》 Oracle 9i,作为Oracle数据库的一个重要版本,引入了许多新特性和改进,其中PL/SQL(Procedural Language/Structured Query Language)是其核心组成部分,是一种结合了SQL和...

    oracle杂记.doc

    oracle杂记.doc 这是我个人的总结。 主要是oracle的编程以及体系结构的理解。

    Hadoop大数据平台运维杂记.pptx

    事故处理部分介绍了三种常见事故:事故一——伤不起的内存、事故二——低效的MapReduce Job、事故三——OMG,整个集群完蛋了。每种事故都详细介绍了现象、原因和解决方法。 六、监控与告警 监控与告警部分介绍了...

    计算机杂记

    #### 四、VC 工程与配置文件 - **.dsp 文件**:在 VC 开发环境中,.dsp 文件用于描述一个项目的构建规则,包含了项目的基本信息、源文件路径等。 - **.dsw 文件**:用于管理项目间的依赖关系,便于大型项目的管理和...

    PD杂记体育ii已同居ikyht

    4. **去除建库脚本中的表头注释**:在Database -> Generate Database的Options卡片中,取消Usage的Title选项,可以去除SQL脚本中的标题注释。 5. **创建和编辑外键**:通过Model -> References创建外键,并在...

    InstallshieldX安装制作杂记

    《InstallshieldX安装制作杂记——自定义对话框的实现》 在软件开发过程中,安装程序的制作是一项不可或缺的工作。InstallshieldX作为一款强大的安装包制作工具,提供了丰富的功能,其中包括自定义对话框的创建,这...

    android杂记:C++文件的添加log方法分享

    在Android开发中,C++文件的调试往往需要借助日志(log)来辅助开发者了解程序运行状态,进行错误跟踪和性能分析。这篇文章分享了在C++文件中添加log的几种方法,并且提供了一些实用的建议和注意事项。 首先,文章...

    InstallshieldX安装制作杂记(实例之自定义对话框)

    《InstallshieldX安装制作杂记:实例之自定义对话框》 在软件开发过程中,创建一个用户友好的安装过程是至关重要的。Installshield是一款强大的安装制作工具,它可以帮助开发者构建专业级别的安装包,同时提供了...

    第14章 Pythonic与Python杂记.mp4

    第14章 Pythonic与Python杂记.mp4

    李特伍德 一个数学家的杂记.pdf

    李特伍德的《一个数学家的杂记》是一本收录了作者关于数学、教育以及个人观点文章的集合。这本杂记以数学为主题,涉及的内容包括几何、概率论、数论以及历史上的数学发现等。李特伍德在书中讨论了数学知识与日常生活...

    杂记:一家大鱼及其他

    杂记中所讲述的内容和描绘的场景,实际上蕴含了丰富的中国农村生活细节和风土人情,以及人性的细腻观察。以下是对这些内容的知识点解读: 首先,杂记中提到了家庭中烹饪的场景,特别强调了“蒸菜疙瘩”的制作过程。...

    installshield安装制作杂记

    installshield安装制作杂记 installshield x

    互联网杂记(四).docx

    【互联网杂记(四)】 本文是一篇关于互联网行业的个人笔记,主要涵盖了坚持、沟通、研究、追求完美的心态以及兴趣等多个方面,同时也提到了一些具体的操作建议,如登陆方式的选择和社区网站的落地策略。 1. 坚持...

Global site tag (gtag.js) - Google Analytics