如何创建继承的类对象的数组?

马克·威尔科森

我在当前项目中工作时遇到了一些麻烦。该项目包括从文件中获取数据行,并创建一个均继承了基类的类对象数组。

因此,这是我到目前为止所了解的:

class BaseClass {
    // create empty and non-empty constructor
}

class SubClass : public BaseClass {
    // create constructor specifically for this class 
}

int main() {
    BaseClass *array[size];
    array[index] = new SubClass();

    return 0;
}

由于SubClass继承了BaseClass,因此当我向数组添加新对象时,它应该是SubClass类型,对吗?

当我调试程序并查看该对象时,它不允许我指向任何SubClass方法/变量进行操作,而这正是我需要做的。

现在,当我在寻找答案时,我遇到了静态转换,因此我尝试了以下程度:

(static_cast<SubClass*>(array[index])->subclass_variable) = some_value

但这似乎也不起作用,对此的任何帮助将不胜感激。

洛罗

解决此问题的一种方法是在基类中定义接口(虚拟方法),并在中实现SubClass

class BaseClass {
    // create empty and non-empty constructor
    virtual void f() = 0;
}

class SubClass : public BaseClass {
    // create constructor specifically for this class 
    virtual void f() { std::cout << "I am your SubClass" << std::endl; }
}

然后,您可以致电array[index]->f();

另一种方法是在类上访问/类型切换,另一种方法是NVI,但这是更高级的主题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Java:如何创建从继承的类中获取对象的getter方法?

来自分类Dev

Java:如何创建从继承的类中获取对象的getter方法?

来自分类Dev

如何创建在模块内部并继承了另一个类的类的对象?

来自分类Dev

在类中创建对象数组

来自分类Dev

如何从类创建对象数组,然后将其传递给子类?

来自分类Dev

如何在C#中创建类对象列表的数组

来自分类Dev

如何在 Android 继承的 Activity 类中创建处理程序和可运行对象

来自分类Dev

创建对象的克隆,但继承原始对象的类的克隆

来自分类Dev

如何访问从通用类继承的对象?

来自分类Dev

如何检查类(而非对象)的继承?

来自分类Dev

如何检查类(而非对象)的继承?

来自分类Dev

如何创建继承Ellipse类的子类

来自分类Dev

如何创建继承Ellipse类的子类

来自分类Dev

从我创建的类创建对象数组

来自分类Dev

如何创建从父字段继承的对象的实例?

来自分类Dev

如何使用Python创建继承的对象?

来自分类Dev

如何在不创建子类和/或继承类的情况下从另一个类调用对象的方法?

来自分类Dev

当我们创建继承的类的新对象时,是否创建了基类的对象?

来自分类Dev

接口-注册类继承接口以基于该类创建对象

来自分类Dev

创建抽象基类列表以填充继承的对象

来自分类Dev

接口-注册类继承接口以基于该类创建对象

来自分类Dev

.NET类默认情况下继承对象类。如何?

来自分类Dev

默认情况下,.NET类继承对象类。如何?

来自分类Dev

如何创建Java类的对象

来自分类Dev

如何从用户的类创建对象?

来自分类Dev

如何从字典创建类对象

来自分类Dev

如何创建一个包含对象作为数组元素的类的数组?

来自分类Dev

类,对象,继承?

来自分类Dev

从BaseClass创建继承的类

Related 相关文章

  1. 1

    Java:如何创建从继承的类中获取对象的getter方法?

  2. 2

    Java:如何创建从继承的类中获取对象的getter方法?

  3. 3

    如何创建在模块内部并继承了另一个类的类的对象?

  4. 4

    在类中创建对象数组

  5. 5

    如何从类创建对象数组,然后将其传递给子类?

  6. 6

    如何在C#中创建类对象列表的数组

  7. 7

    如何在 Android 继承的 Activity 类中创建处理程序和可运行对象

  8. 8

    创建对象的克隆,但继承原始对象的类的克隆

  9. 9

    如何访问从通用类继承的对象?

  10. 10

    如何检查类(而非对象)的继承?

  11. 11

    如何检查类(而非对象)的继承?

  12. 12

    如何创建继承Ellipse类的子类

  13. 13

    如何创建继承Ellipse类的子类

  14. 14

    从我创建的类创建对象数组

  15. 15

    如何创建从父字段继承的对象的实例?

  16. 16

    如何使用Python创建继承的对象?

  17. 17

    如何在不创建子类和/或继承类的情况下从另一个类调用对象的方法?

  18. 18

    当我们创建继承的类的新对象时,是否创建了基类的对象?

  19. 19

    接口-注册类继承接口以基于该类创建对象

  20. 20

    创建抽象基类列表以填充继承的对象

  21. 21

    接口-注册类继承接口以基于该类创建对象

  22. 22

    .NET类默认情况下继承对象类。如何?

  23. 23

    默认情况下,.NET类继承对象类。如何?

  24. 24

    如何创建Java类的对象

  25. 25

    如何从用户的类创建对象?

  26. 26

    如何从字典创建类对象

  27. 27

    如何创建一个包含对象作为数组元素的类的数组?

  28. 28

    类,对象,继承?

  29. 29

    从BaseClass创建继承的类

热门标签

归档