开始看这本神书,做一些笔记:
简单对象模型
第一个模型很简单,一个对象是由一系列slots组成,但是成员(对象和函数)都不是放在对象内的,而是把指针放在对象内,通常来说这不被应用于实际产品。
表格驱动对象模型
存储两个指针,分别指向data member table和function member table
C++对象模型
来看看重头戏——C++对象模型。有几个需要注意的:
非静态数据成员放在类的对象中;
静态数据成员和成员函数放在类对象之外;
至于虚函数,则需要从类和对象两个方面考虑:每一个类都会有一个相关联的虚函数表;每一个对象都会有一个指针指向虚函数表,而表中的第一个slot通常是type_info object;