다음 C++ 프로그램의 실행 결과로 옳은 것은?
#include <iostream>
using std::cout;
class A {
public:
virtual void p() { cout << "A.p "; }
void q() { cout << "A.q "; }
virtual void r() {
p();
q();
}
};
class B : public A {
public:
void p() { cout << "B.p "; }
};
class C : public B {
public:
void q() { cout << "C.q "; }
void r() {
q();
p();
}
};
void main() {
A *ap = new B;
ap->r();
ap = new C;
ap->r();
}- ①A.p A.q B.p C.q
- ②A.p A.q C.q B.p
- ③B.p A.q B.p C.q
- ④B.p A.q C.q B.p
선지를 골라 바로 채점해 보세요.
정답 ④
출처: 인사혁신처 공개 기출(공공데이터포털, 이용허락 제한 없음)