用于保存不同类对象的容器

时间:2015-11-18 20:16:48

标签: c++

我有一个代码,其中包含4个不同的类。 我必须创建方法插入,它保存对象的某个地方。但我不知道如何实现这一目标。

所以我可以为所有类型的对象创建插入方法但是如何存储它们? 因为我无法为它创建一个类型数组。我必须在没有模板的情况下这样做。

   int main ()
    {
       List all;
       all.insert(new Number (30.1));
      //
       Number num1 (30.0);
       all.insert(num1);
      //
       IntArray a_int (3);
       all.insert(a_int);
      //
       FloatArray a_float (4);
       all.insert(a_float);
      //
       all.PrintAll();
    }
    /*
    Output for PrintAll:
    Number: 30.1
    Number: 30.0
    IntArray: 3
    FloatArray: 4
    */

1 个答案:

答案 0 :(得分:2)

没有模板,基本上有两种方法可以做到这一点:

1)实现一个容器对象(如QVariant),其中包含每个可能类的成员变量。然后只需将这些容器的实例存储到您的数组中。容器可以具有例如一个枚举,指示设置了哪些成员。

2)从同一个基类继承类,并将指向基类的指针存储到数组中。