【问题标题】:Array of pointers to diffrent-class objects that inherit from 1 base class指向从 1 个基类继承的不同类对象的指针数组
【发布时间】:2016-03-09 19:05:19
【问题描述】:

所以我们说有一个基类A,有B类和C类是A类的继承。

现在我想创建一个指向 B 对象或 C 对象的指针数组。

我该怎么做?

【问题讨论】:

  • 从写代码开始?

标签: c++ arrays class


【解决方案1】:

指向公共基础的指针可以指向从该基础派生的对象。因此,您可以这样做:

A* arr[N];

【讨论】:

  • 但是想一想,如果 B 有一个叫 num 的成员,那么当我尝试这样做时:arr[0].num,它告诉我 num 不是 A 的成员。?
  • @andyz 正确。如果要访问B的成员,则可以将指针转换为B*
  • 好的。还有1个问题。如果我想删除 arr[0] 指向的内容,我应该这样做: delete arr[0]; arr[0]=NULL;还是别的什么?
  • @andyz 将原始指针分配给 null 是否会删除指向的对象?答案是不。欲了解更多信息,请阅读:stackoverflow.com/a/9888542/2079303
猜你喜欢
  • 1970-01-01
  • 2016-04-30
  • 2011-02-11
  • 1970-01-01
  • 2016-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多