[7급 국가직 프로그래밍언어론 2010년 4번]

다음은 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;
}
프로그래밍언어론
  1. ①프로그램이 실행되면 “NA NA NA ”가 출력된다.
  2. ②프로그램이 실행되면 “4 3 # ”가 출력된다.
  3. ③㉠에서 virtual을 제거하고 실행하면 “4 3 NA ”가 출력된다.
  4. ④㉠에서 virtual을 제거하고 실행하면 “NA NA NA ”가 출력된다.

선지를 골라 바로 채점해 보세요.

정답 ④

출처: 인사혁신처 공개 기출(공공데이터포털, 이용허락 제한 없음)

신고가 접수됐습니다. 감사합니다.

오류 신고