c++ - 指向类族中各种类型的指针的限制?

标签 c++ class pointers inheritance derived-class

假设我有 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 中有应由 BC 实现的函数,请确保它们是虚拟的。

关于c++ - 指向类族中各种类型的指针的限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15824508/

相关文章:

c - 指针给出意想不到的值

c++ - 在函数 `_start' : (. text+0x20): undefined reference to `main' collect2: ld returned 1 exit status

c++ - 我在链接 SDL 库时遇到问题

字符串上的 C++ 静态属性初始化错误

objective-c - 如何从表数据源访问数组?

c - 按值传递指针或按引用传递指针是否相同

c - C 语言栈的 Pop() 函数

c++ - "undefined reference to ` 运算符>>(std::istream&, Complex<int>&)"用于模板 Complex<T>

c++ - 如何使用 std::copy?不适用于 OSXSierra/CLION/C++11。

javascript - 如何按一定时间间隔一次显示数组中的一个类?