다음은 C++에서의 다형성에 관한 예제이다. 이 프로그램에 대한 설명으로 옳은 것은?
#include<iostream.h>
class Polygon {
public: virtual void edges() { cout<< "NA "; } // ㉠
};
class Rectangle : public Polygon {
public: void edges() { cout<< "4 "; }
};
class Triangle : public Polygon {
public: void edges() { cout<< "3 "; }
};
class Varangle : public Polygon {
public: void edges(int e) { cout<< "# "; }
};
int main(int argc, char* argv[])
{
Polygon* p[3];
p[0] = new Rectangle();
p[1] = new Triangle();
p[2] = new Varangle();
for (int i = 0; i< 3; i++)
p[i]->edges();
return 0;
}- ①프로그램이 실행되면 “NA NA NA ”가 출력된다.
- ②프로그램이 실행되면 “4 3 # ”가 출력된다.
- ③㉠에서 virtual을 제거하고 실행하면 “4 3 NA ”가 출력된다.
- ④㉠에서 virtual을 제거하고 실행하면 “NA NA NA ”가 출력된다.
선지를 골라 바로 채점해 보세요.
정답 ④
출처: 인사혁신처 공개 기출(공공데이터포털, 이용허락 제한 없음)