|
1
6
是的,有多个V表,每个继承接口一个。静态\u cast<gt;返回它。编译器确保继承接口中的公共方法是共享的,它用指向同一函数的指针填充每个v表槽。所以您只需要一个addref、release和queryinterface的实现。只是你想要的。这些都不是意外。 只有当一个组件类使用与您相同的方法实现多个接口时,这才是一个问题。 不要 希望给出相同的实现。IConnectionPoint::Advise()方法是一个臭名昭著的例子。或者是Dadvise()?不幸的是,我不记得它与什么冲突,以及它是如何解决的,它被ATL内部所覆盖。非常好的书。 |
|
|
2
3
在多重继承中,如果给定,多个vtable按如下格式的顺序排列
【01】【02】【03】【04】【05】【06】【07】【08】【09】【10】【11】【12】
在C++中,在多个接口场景中,每个函数原型只生成1个实现。 然而,对于正常的继承场景,超类可能有预先定义的实现,并且覆盖函数的子类的vtables指向的内容与父类不同。 |