我有一个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容器。
谢谢!