/* 3. ´ÙÀ½ ÇÁ·Î±×·¥ÀÇ Ãâ·ÂÀ» ½á¶ó. */ #include class Person { public: virtual void talk(Person *p) { if (p != this) p->say(this); printf("1"); } void say(Person *p) { p->talk(p); printf("2"); } }; class Man : public Person { public: virtual void talk(Person *p) { if (p != this) p->say(this); printf("3"); } void say(Person *p) { p->talk(p); printf("4"); } }; class Woman : public Person { public: virtual void talk(Person *p) { if (p != this) p->say(this); printf("5"); } void say(Person *p) { p->talk(p); printf("6"); } }; void main() { Person *p = new Person(); Person *q = new Man(); Woman *r = new Woman(); p->talk(q); q->talk(r); r->talk(p); printf("\n"); }