Inside the C++ Object Model:1、关于对象

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_30534935/article/details/102669446

在 C 语言中,“数据” 和 “处理数据的操作(函数)” 是分开声明的,也就是说,语言本身并没有支持 “数据和函数” 之间的关联性。我们把这种程序方法称为程序性的(procedural),由一组 “分布在各个以功能为导向的函数中” 的算法所驱动,它们处理的是共同的外部数据。

1.1 C++ 对象模式


在 C++ 中,有两种 class data memebers:static 和 nonstatic,以及三种 class member functions:static、nonstatic 和 virtual。


简单对象模型

一个 object 是一系列的 slots,每一个 slot 指向一个 members。Members 按其声明顺序,各被指定一个slot。


表格驱动对象模型

为了对所有 classes 的所有 objects 都有一致的表达方式,另一种对象模型是把所有与 members 相关的信息抽出来,放在一个 data member table 和一个 member function table 之中,class object 本身则内含指向这两个表格的指针。


C++ 对象模型


对象模型如何影响程序



1.2 关键词所带来的差异


关键词的困扰


策略性正确的 struct



1.3 对象的差异


C++ 程序设计模型直接支持三种 programming paradigms。
包括:程序模型、抽象数据类型模型、面向对象模型。


指针的类型


加上多态之后

猜你喜欢

转载自blog.csdn.net/qq_30534935/article/details/102669446