假设我们有一个BaseClass角色和三个子类Good,Bad,Zombie。
还假设我们有两个指针Character* ptr1,ptr2;
在Good,Bad或Zombie类中的这一点。我想创建一部分这样的代码:if ((ptr1 "shows" Good)&&(ptr2 "shows" Bad)) {...}else if ((ptr1 "shows" Good)&&(ptr2 "shows" Zombie)) {...}else if ...
等等。我该如何写这样的声明?我很难理解虚函数,多态性和继承,但也可以自由地解释这些功能。
先感谢您。
最佳答案
您可以在Character中声明一个虚拟的公共方法,该方法返回一个表示字符类型的枚举类,例如
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/