假设我有 4 个类(class):A、B、C 和 D。
A 是基类。 B是从A派生出来的。 C 源自 A。
D 源自 B。
我有每种类型对象的 vector 。
我创建了一个被排除在相关类(家族?)之外的第五类,称为 Z。 Z 包含一个指向 A 类对象的变量,称为紫色。
我可以通过执行以下操作来创建“家庭间”通用指针: A * pUniversal;
并将 pUniversal 指向 A、B、C 或 D,可互换地指向存储在其类型 vector 中的对象。然后将 Z 的紫色变量设置为 pUniversal?
最佳答案
是的,你可以做到。这是拥有派生类的主要好处之一。
如果 A
中有应由 B
或 C
实现的函数,请确保它们是虚拟的。
关于c++ - 指向类族中各种类型的指针的限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15824508/