第一章 关于对象

2017-04-28  本文已影响0人  IAQ

简单对象模型(A Simple Object Model)


一个objects是一系列的slots。
members本身不放在object中,只有指向member的指针放在object中。
​ 避免members有不同类型,因而需要不同的存储空间所招致的问题
Object中的members是以slot的索引值来寻址。



用于C++指向成员的指针概念之中

表格驱动对象模型(A Table-driven Object Model)


屏幕快照 2017-04-28 下午8.09.27.png

用于virtual functions的一个有效方案

C++对象模型(The C++ Object Model)


Class object内: nonstatic data members
Class object外: static data members、static and nonstatic function members
Virtual functions:

屏幕快照 2017-04-28 下午8.23.00.png

继承模型:

屏幕快照 2017-04-28 下午10.02.19.png

C++程序设计模型


  1. 程序模型(procedural model)
  2. 抽象数据类型模型(abstract data type model,ADT)
    提供一组表达式(public 接口),重载运算符操作
  3. 面向对象模型(object-oriented model)
    继承,共同相关类型由抽象基类封装起来
    通过指针或者引用来间接处理基类对象才体现多态

C++支持多态的方法:

Class object的内存占用

上一篇 下一篇

猜你喜欢

热点阅读