- 主题:虚基类指针怎样指向派生类对象的变量
搞C++10年了,从没自己写过虚基类,或者做过基于虚基类的设计,应该很常见吧。 这玩意知道就行了,用起来真是得好好考虑是不是真的场景契合。 记得有本书就说过,基于虚拟继承的好设计几乎都是由一个人在一个特定模块内完成。
不过LZ的这个例子也不是虚基类啊。 A,B完全不同,在运行时又要得到不同的行为,用函数重载不是更好吗? 高级一点的话就是相同的逻辑放在模板,模板内再通过函数重载实现差异化处理。
--
FROM 1.91.32.*
【 在 cheaper2005 的大作中提到: 】
: 这样的结构体有几十个,变成类后,虚函数的行为完全一样,最理想的使用多态的场景。代码调用简洁太多了。
: 但是有几个结构有些变量不一致,如果基类指针能够直接访问这些变量,代码有会简洁很多。 downcast我没有成功,现在已处理好了,派生类指针强制转换就能搞定,但是不够完美。
: 你搞了10年C++没用过多态还是很有些缺点什么的,我见过很多人用C++其实还是C的写法,不奇怪
: ...................
我说自己没写过虚基类,你怎么就觉得我没用过多态呢, 虚基类和多态是两码事啊。。。
前面都有人回你了, 你对所谓虚基类的理解是错误的。你把普通的继承/多态表述成虚基类了,但是C++里面的虚基类不是这个概念。 先找一本C++的书看看什么是虚基类和虚拟继承吧。
--
修改:hongdiao FROM 1.91.32.*
FROM 1.91.32.*