Я собираюсь оставить вещи типа в стороне, хотя я думаю, что вам, вероятно, это не нужно и, следовательно, шаблон не нужен ... но вот что вам нужно:
Во-первых, вектор должен содержать указатели:
vector<Fruit<int> *> fruits;
это предотвращает нарезку (где отрезана часть объекта Apple).
Кроме того, теперь, когда у вас есть указатели, ваш цикл изменится:
for(int i=0; i<fruits.size(); i++)
fruits[i]->Info();
Теперь будет вызываться соответствующая функция Info
для типа вашего фрукта.