#include <iostream>
using namespace std;


class car {
public: virtual void print_type() = 0;
};


class sedan : public car {
public: virtual void print_type() { cout << \"sedan\";}
};


class van : public car {
public: virtual void print_type() { cout << \"van\";}
};


class truck : public car {
public: virtual void print_type() { cout << \"truck\";}
};


#define NUM_CAR 3


main()
{
  car *car[NUM_CAR];
car[0] = new van();
car[1] = new sedan();
car[2] = new truck();
  for (int i=0; i<NUM_CAR; i++) {
car[i]->print_type(); cout << endl;
  }
}


}----------------------------------------

c++ 코드입니다.

여기서 위 코드를 실행하면 차례대로 van sedan truck 이 출력이되는데요,

메인함수를 건드리지 않고 car class의 print_type 함수를 virtual로 선언하지 않으면서 똑같은 출력을 낼 수 있도록 코드를 수정할 방법이 있나요?
1시간넘게 고민하다 도저히 답이 안나와서 질문드립니다.
답변부탁드립니다