假设我们有一个 BaseClass Character 和三个子类 Good、Bad、Zombie。 还假设我们有两个指针
字符* ptr1,ptr2;
类 Good、Bad 或 Zombie 中的那个点。我想创建这样的代码的一部分:
if ((ptr1 "显示"好)&&(ptr2 "显示"坏)) {...}
else if ((ptr1 "shows"Good)&&(ptr2 "shows"Zombie)) {...}
否则如果...
等等。我怎么能写这样的声明?我很难理解虚函数、多态性和继承,但也可以随意用这些来解释。
提前谢谢你。
最佳答案
您可以在 Character 中声明一个虚拟公共(public)方法,它返回一个表示字符类型的枚举类,例如
virtual CharacterType GetCharacterType();
....
if((ptr1->GetCharacterType() == CharacterType::Good) && ptr2->GetCharacterType() == CharacterType::Bad)) {...}
或者确认字符类型的虚方法。
virtual bool Is(CharacterType characterType);
....
if((ptr1->Is(CharacterType::Good) && ptr2->Is(CharacterType::Bad)) {...}
关于c++ - 指向继承类的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37092726/