- 主题:虚基类指针怎样指向派生类对象的变量
比如A,B都是纯虚基的派生类, 有一个基类指针pC,
pC执行A或B中虚函数没有问题,有没有办法能不能pC访问A,B中的变量,比如A中的a,B中的b
我的应用场景是:A,B其实都是些结构体,想利用多态变成class,但其实还是当做struct使用,
有人建议用一系列的get,set虚函数来实现,这个不现实,A,B的结构完全不一样,而且数目很多
--
FROM 211.103.207.*
这样的结构体有几十个,变成类后,虚函数的行为完全一样,最理想的使用多态的场景。代码调用简洁太多了。
但是有几个结构有些变量不一致,如果基类指针能够直接访问这些变量,代码有会简洁很多。 downcast我没有成功,现在已处理好了,派生类指针强制转换就能搞定,但是不够完美。
你搞了10年C++没用过多态还是很有些缺点什么的,我见过很多人用C++其实还是C的写法,不奇怪
获得这些结构体
【 在 hongdiao (hongdiao) 的大作中提到: 】
: 搞C++10年了,从没自己写过虚基类,或者做过基于虚基类的设计,应该很常见吧。 这玩意知道就行了,用起来真是得好好考虑是不是真的场景契合。 记得有本书就说过,基于虚拟继承的好设计几乎都是由一个人在一个特定模块内完成。
: 不过LZ的这个例子也不是虚基类啊。 A,B完全不同,在运行时又要得到不同的行为,用函数重载不是更好吗? 高级一点的话就是相同的逻辑放在模板,模板内再通过函数重载实现差异化处理。
--
FROM 211.103.207.*
没有写清楚, C是纯虚类
【 在 chenjy (cjy) 的大作中提到: 】
: 你这不叫虚基类,虚基类是虚继承的基类
: 中的b
: struct使用,
: ...................
--
FROM 211.103.207.*