我想制作一个包含多个模板对象的数组。
例如,如何使用这两个对象填充数组:
Foo< A, B, C > FooItem (bar_, bor_);
Foo < D, E, F > FooItem2 (bur_, ber_);
myArray[0] = FooItem;
myArray[1] = FooItem2;
void *指针数组?经典阵列?
谢谢!
答案 0 :(得分:2)
我假设你的意思是你想要一个能够容纳不同类型对象的数组。一个简单的数组不能这样做,因为所有元素必须是相同的类型,并且void*
没有多大用处,因为无法确定任何对象的类型,因此无法做到任何对他们有用的东西。
根据您打算如何使用数组中的对象,各种可能性包括:
dynamic_cast
或typeid
与对象进行交互。答案 1 :(得分:0)
您可以使用对矢量:
std::vector< std::pair< Foo<A, B, C>, Foo<D, E, F> > > array;
如果您想要一个普通数据阵列:
std::pair< Foo<A, B, C>, Foo<D, E, F> > array[size];