有没有办法检查超类的 type_info 是什么?在我的系统中,对象由一组位标识。由 type_info 哈希码标识。我希望其中一些类型能够启用多态性,因为我的系统认为它们在同一位下。type_info 为每个类类型创建一个唯一的哈希码。相反,我希望派生类采用它们的超类的位集,如下所示:
Component > ISomeInterfaceComponent -> bit = 00001
|
\ ComponentContextA -> bit = ISomeInterFaceComponent bit
|
\ ComponentContextB -> bit = ISomeInterFaceComponent bit
|
\ ComponentContextC -> bit = ISomeInterFaceComponent bit
这应该将包含组件的对象添加到一个系统进行处理。
截至目前,情况是这样的:
Component > ISomeInterFaceComponent -> bit = 00001
|
\ ComponentContextA -> bit = 00010
|
\ ComponentContextB -> bit = 00100
|
\ ComponentContextC -> bit = 01000
这要求我为所有组件创建不同的系统。
如果有人能给我指点我如何实现这一点,那就太好了。
编辑:为防止混淆为类型设置位,如下所示: ComponentTypeManager::getBit();
所以我不使用实例。而且我很想保持当前系统处于锁定状态。