Как создать подкласс шаблонного базового класса?

У меня есть следующие данные структуры данных:

struct fastEngine { ... }
struct slowEngine { ... }

template<typename T>
class Car {
   T engine;
   vector<T> backupEngines;

   virtual void drive() = 0;
}

class FastCar : public Car<fastEngine> {
   virtual void drive() {
      // use the values of "engine" in some way
   }
}

class SlowCar : public Car<slowEngine> {
   virtual void drive() {
      // use the values of "engine" in some way
   }
}

Car* getCarFromCarFactory() {  // 1
   if (randomNumber == 0)
      return new FastCar();
   else
      return new SlowCar();
}

void main() {
   Car* myCar = getCarFromCarFactory(); // 2
   myCar->drive();
}

Компилятор жалуется в местах 1 и 2, потому что он требует, чтобы я определилАвтомобиль* с параметрами шаблона. Мне все равно, какая шаблонная версияАвтомобиль Я использую, я просто хочу указатель наАвтомобиль что я могу водить.двигатель структуры должны быть структурами, потому что они взяты из существующего кода, и я не могу их контролировать.

Ответы на вопрос(2)

Ваш ответ на вопрос