#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시간넘게 고민하다 도저히 답이 안나와서 질문드립니다.
답변부탁드립니다
재밌잖아요. 같이 고민해봐요
아히밤머리야
원하는 다형성을 얻기 위해서는 가상 함수가 필수 요소이기 때문에 virtual 없이는 불가능하다고 생각합니다