版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
在 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。
包括:程序模型、抽象数据类型模型、面向对象模型。
指针的类型
加上多态之后