我想制作一个包含多个模板对象的数组。
例如,如何使数组填充这两个对象:
Foo< A, B, C > FooItem (bar_, bor_);
Foo < D, E, F > FooItem2 (bur_, ber_);
myArray[0] = FooItem;
myArray[1] = FooItem2;
void* 指针数组?经典阵列?
谢谢 !
我假设您的意思是您想要一个能够容纳不同类型对象的数组。一个简单的数组不能做到这一点,因为所有元素必须是相同的类型,并且void*
没有太多用处,因为无法确定任何对象的类型,因此无法对它们做任何有用的事情。
根据您打算如何使用数组中的对象,各种可能性包括:
dynamic_cast
或typeid
与对象交互。您可以使用成对向量:
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];