C ++如何创建模板类数组?

时间:2015-10-27 11:16:10

标签: c++ templates

我有一个classA需要持有classB的实例数组。

class ClassA{
private:
  int size;
  ClassB *array;
public:
  ClassA(int size){
    array= new ClassB[size];
  }
  template <typename ValueType>
  void Add(int key, ValueType& value);
};

class ClassB{
  int key;
  ??? value;
}

障碍是我需要classB的成员值为任何类型。因为我打算使用Add()函数传递任何数据类型的引用。

我的第一个线索是使用模板类,就像这样

template<Class T>
class ClassB{
  int key;
  T value;
}

但是在这种情况下,编译器不允许我创建一个数组array = new ClassB [size],可能是因为我需要在创建数组之前指定类型。

很快,我需要一个像这样的数组:

array [0] = ClassB的实例{int key,int&amp;值}

array [1] = ClassB的实例{int key,double&amp;值}

array [2] = ClassB的实例{int key,std :: string&amp;值}

如何创建具有不同数据类型的类实例数组?如果不可能,我怎样才能在一个数组中实现不同数据类型的存储引用?

我不能使用std :: pair&lt;&gt;或任何其他STL容器。

谢谢!

0 个答案:

没有答案