Существует ли какой-либо возможный способ использования универсального типа для содержания дочернего элемента базового класса.
Из данного мне поручения я должен создать нечто похожее на следующее по структуре.
template <class T>
class Fruit {
private:
int count;
int location_id;
T type;
public:
virtual void displayInfo();
};
class Apple : private Fruit<Apple> {
private:
int variety;
public:
void displayInfo() {
printf("Location %i has %i of %s in stock", location_id, count, variety);
}
};
Fruit<Apple> appleinventory[SIZE];
В принципе, я думаю, что шаблонный универсальный тип не может быть таким же, как производный класс. Я ошибся? Есть ли что-то подобное, что могло бы работать?
Обновление:
Я полагаю, что для назначения мы должны использовать наследование, чтобы показать использование виртуальных функций. Я обновил код выше. Я думаю, что это будет работать, но НЕ нуждается в шаблонах для успеха. Мы не рассмотрели какие-либо дополнительные избыточные методы наследования в классе.