多继承就是蛋疼。我一般没兴趣去研究错在哪里,直接奔着最佳实践去。我针对多继承的最佳实践是用模板:
template<typename Base>
class XxooMixin: public Base {};
class Derived: public XxooMixin<Base> {};
这样子把多继承变成了三个层次的继承。坏处是 Mixin 只能写在 .h 头文件里面,没法写到 .cpp 里面了。
【 在 fanci (大葡萄) 的大作中提到: 】
: 得亏我及时一通搜索搞定。是这样的:
: 有三个类 A, B, C,其中 A和B都非空,而C同时继承A和B,即 struct C : A, B {...};
: 那么从 C的指针 static_cast 到 B的指针是会改变指针的值的。我想计算这个偏移量(有几字节),于是我搞了这么个:
: ...................
--
FROM 110.81.42.*