this跳转是指的“对象同一性”问题。
在单一继承的世界内,无论继承关系怎么复杂,针对于同一对象,无论它的子类或者父类的this指针永远相等。即如果有下面的模型:
那么 对于一个已经实例化B类的对象 bObject,永远有(B*)&bObject ==(A*)&bObject 成立。
但是在多继承的世界内,上面的等式就不能恒成立,对象的同一性受到了挑战。
特别的是,在多继承世界内如果(前一篇中所述)菱形关系存在情况下,如果对于已经实例化B类的对象bObject; (Base*)(A1*)&bObject != (Base*)(A2*)&bObject 成立,当这种事情发生的时候我们就只能特殊处理了。这种情况在COM应用中处处都会发生。
4177

被折叠的 条评论
为什么被折叠?



