深入理解C++的对象模型

2020-01-06 15:45:09王旭
base class table增加了子类的扩展性,当基类发生改变时,可以通过扩展、缩小或者更改base class table来进行调整。

以上两种实现方式都存在一个重要的问题,就是由于间接性而导致的空间和时间上的额外负担,并且该间接性的级数会随着继承的深度而增加。

C++ 最初采用的继承模型并不采用任何间接性,所有基类的数据直接存储在子类当中,这样在存储结构和访问效率上是最高效的。当然也有缺点:当base class members有任何改变,用到此base class或者derived class的对象必须重新编译。在C++ 2.0引入了virtual base class,需要一些间接性的方式来支持该特性,一般会导入一个virtual base class table或者扩展已有的virtual table

总结

以上就是深入研究C++的对象模型的全部内容,希望本文的内容对大家有所帮助。


注:相关教程知识阅读请移步到C++教程频道。