【发布时间】:2012-03-27 14:47:25
【问题描述】:
我有一个名为 Cell 的基类(其他类有一个指向此类对象的指针),以及 3 个派生类 CellA、CellB 和 CellC。当一个单元格死亡时,指针指向单元格,在其他情况下是活着的(A、B 或 C)。怎么知道是什么在这个时刻指向那个指针来行动??
【问题讨论】:
-
有一个虚拟的
IsAlive方法。 -
谁是你叙述中的“指针”?
我有一个名为 Cell 的基类(其他类有一个指向此类对象的指针),以及 3 个派生类 CellA、CellB 和 CellC。当一个单元格死亡时,指针指向单元格,在其他情况下是活着的(A、B 或 C)。怎么知道是什么在这个时刻指向那个指针来行动??
【问题讨论】:
IsAlive 方法。
也许你需要一点不同的逻辑,看看状态设计模式,我认为它可以帮助你。通常铸造是一件坏事,应该避免。如果您需要铸件,那么您可能遇到了设计问题....
祝你好运
【讨论】:
如果您的类是多态的,您可以使用 dynamic_cast。dynamic_cast 允许您安全地向下转换指针。
在您的情况下,您可以使用dynamic_cast 检查基类指针是否指向派生实例,dynamic_cast 可以向您报告该信息。
【讨论】:
使用dynamic_case 或typeid() 在运行时了解对象...
【讨论】: