第一章 關於物件

2021-07-31 08:20:08 字數 1222 閱讀 7429

乙個objects是一系列的slots。

members本身不放在object中,只有指向member的指標放在object中。

​避免members有不同型別,因而需要不同的儲存空間所招致的問題

object中的members是以slot的索引值來定址。

用於c++指向成員的指標概念之中

用於virtual functions的乙個有效方案

1.記憶體分布:

class object內: nonstatic data members

class object外: static data members、static and nonstatic function members

virtual functions:

-vtbl 存放每乙個class生成的指向vf的指標

- 每乙個class object 被新增乙個指向vtbl的指標(vptr),設定和充值都由每乙個class的構造、析構和拷貝運算子自動完成

- 每乙個class關聯的type_info object(用以支援runtime type identification,rtti)也經由vtbl被指

2.繼承模型:

程式模型(procedural model)

抽象資料型別模型(abstract data type model,adt)

提供一組表示式(public 介面),過載運算子操作

物件導向模型(object-oriented model)

繼承,共同相關型別由抽象基類封裝起來

通過指標或者引用來間接處理基類物件才體現多型

c++支援多型的方法:

class object的記憶體占用

指標型別告訴編譯器如何解釋某個位址中的記憶體內容及其大小,轉型(cast)就是影響解釋方式

第一章 關於物件

本文及以後的文章上面的知識點來自於深度探索c 物件模型。沒有侵權的意思,僅僅供自己和有需要的人學習 封裝後的布局成本 c 物件模型 nostatic data members 被配置於每乙個 class object 之內,static.和function.被放在個別的 class object 之...

C 物件模型 關於物件 第一章

c 物件模型的主要優點在於它空間和訪問時間的效率 主要缺點是,如果應用程式 本身並未改變,但所用的class object的nonstatic data members有所修改 可能是增加 移除或修改 那麼那些應用程式 同樣得重新編譯。關於這點,前面的的 驅動模型就提供了較大的彈性,因為它多提供了一...

第一章 物件導論

所有程式語言都提供抽象機制。人們所能夠解決的問題的複雜性直接取決於抽象的型別和質量 物件導向程式設計允許根據問題來描述問題,而不是根據執行解決方案的計算機來描述問題。物件導向程式設計的五個基本特性,這些特性表現了一種純粹的物件導向程式設計方式 總結 這 一小節首先介紹了類的思想 物件導向程式設計語言...