关于对象( Object Lessons)

类的成员有数据成员(class member data)和函数成员(class member function)。
数据成员分为静态(static)和非静态(nonstatic)。
函数成员分为静态、非静态、虚函数(virtual)。

  • 简单对象模型( A simple Object Model )
目的: 为了尽量减少C++编译器的设计复杂度
缺点:空间耗费大,执行效率低。
在这个简单模型中,每个object都是一系列的slots。 每个slot指向一个members。members按其声明顺序,各被指定一个slot。
members本身并不放在object之中。只有“指向member的指针”才放在object内。这样做可以避免“members有不同的类型,因而需要不同的存储空间”所导致的问题。
class object大小为 指针大小乘以class中所声明的members个数
  • 表格驱动对象模型( A Table-driven Object Model )
分为data member table和 data function table。 class object 包含指向这两个表格的指针。
Member Data Table直接持有Data本身。 Memeber function则是由一系列slots,每个slot指向每个class member function。
  • C++对象模型 ( The C++ Object Model )

猜你喜欢

转载自blog.csdn.net/koganlee/article/details/80892888
今日推荐