c++ - 指向继承类的指针

标签 c++ class pointers subclass derived-class

假设我们有一个 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/

相关文章:

c++ - 指针混淆 char* 和 int*

c++ - 堆栈抛出内存访问冲突

c++ - 仅保留重复值 - Vectors C++

c++ - boost::atomic 编译问题

C# 类与结构

java - Java 中带有附加方法的子类

php - 了解 vars 的类和范围

c++ - const 指针和指向 const 的指针

c - C 中的函数指针和内存管理

c - 如何释放对齐指针?