/* 4. 다음 프로그램의 출력을 써라. */ #include <stdio.h> class Singer { public: virtual void sing(Singer *p) { printf("니"); if (p) p->sing(); } void sing() { printf("나"); } static void sing(Singer *p,Singer *q,Singer *r,Singer *s) { p->sing(q); q->sing(r); r->sing(s); s->sing(p); } }; class NaHuNa : public Singer { public: virtual void sing(Singer *p) { printf("노"); if (p) p->sing(); } void sing() { printf("닐"); } }; class NamJin : public Singer { public: virtual void sing(Singer *p) { printf("니"); if (p) p->sing(); } void sing() { printf("리"); } }; class Taegyun : public Singer { public: virtual void sing(Singer *p) { printf("야"); if (p) p->sing(); } void sing() { printf("앙"); } }; void main() { Singer::sing(new Singer(),new NaHuNa(),new NamJin(),new Taegyun()); printf("\n"); }