// ... other operations ...
protected:
float _z;
};
3、在Point3d的对象pt3d中,则有四个东西,一个是_x,一个是_vptr_Point,一个是_y,一个是_z。其中_vptr_Point指向着virtual table point3d。由于point3d继承自point2d,所以在virtual table point3d中存储着:已经改写了的point3d的~Point3d(),point3d::mult()的函数地址,和z()函数的地址,以及未被改写的point2d的y()函数地址。
ok,上述1、2、3所有情况的详情,请参考下图。

(图:virtual table(虚表)的布局:单一继承情况)
本文,日后可能会酌情考虑增补有关内容。ok,更多,可参考深度探索c++对象模型一书第四章。
最近几章难度都比较小,是考虑到狂想曲有深有浅的原则,后续章节会逐步恢复到相应难度。
第四节、虚函数的布局与汇编层面的考察
ivan、老梦的两篇文章继续