/* 3. ´ÙÀ½ ÇÁ·Î±×·¥ÀÇ Ãâ·ÂÀ» ½á¶ó. */ int data[5] = { 1, 2, 3, 4, 5 }; // ¿©±â¸¦ ¹Ù²Ü °Í #include class Person { public: Person() { } void talk(Person *p) { if (p != this) p->say(this); data[0] = data[0] + 1; } virtual void say(Person *p) { p->talk(p); data[1] = data[1] + 1; } }; class Man : public Person { public: void talk(Person *p) { if (p != this) p->say(this); data[2] = data[2] + 1; } virtual void say(Person *p) { p->talk(p); data[3] = data[3] + 1; } }; class Woman : public Person { public: void talk(Person *p) { if (p != this) p->say(this); data[4] = data[4] + 1; } virtual void say(Person *p) { p->talk(p); data[2] = data[2] + 1; } }; void main() { Person *p = new Person(); Person *q = new Man(); Woman *r = new Woman(); p->talk(q); q->talk(r); r->talk(p); for(int i = 0; i < 5; i++) printf("%d\n",data[i]); }