我有一个代码,其中包含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
*/
答案 0 :(得分:2)
没有模板,基本上有两种方法可以做到这一点:
1)实现一个容器对象(如QVariant),其中包含每个可能类的成员变量。然后只需将这些容器的实例存储到您的数组中。容器可以具有例如一个枚举,指示设置了哪些成员。
2)从同一个基类继承类,并将指向基类的指针存储到数组中。