Я не знаю, как решить проблему с шаблонами и наследованием.
В моем коде есть шаблонный класс, который выглядит примерно так:
template<typename T>
class Derived : public Base{
T value;
public:
Derived(T arg) { value=arg; };
T getValue() { return value;};
};
class Base{
};
Единственная цель моего Базового класса - сгруппировать массив объектов класса Derived. Параметр T обычно является double, float или complex, хотя int и структуры могут также стать полезными. (Позже будет еще несколько похожих производных классов с несколькими дополнительными функциями.)
Я могу создать такую группу
Base** M = new Base*[numElements];
и присваивать им элементы производного класса, например ::
M[54] = new Derived<double>(100.);
Но как я могу узнать, что 55-й элемент имеет значение 100 позже?
Мне нужно что-то вроде
virtual T getValue() = 0;
но T - это имя типа производного класса и может отличаться для любых двух элементов этого массива.