[ CnUnix ] in KIDS 글 쓴 이(By): taiyou (whoami) 날 짜 (Date): 2006년 3월 21일 화요일 오전 12시 08분 28초 제 목(Title): Re: [Q] Overriding을 이용할 때 실은 필요한게, base::foo(base *) A::foo(A*) B::foo(B*) C::foo(C*) 이것 뿐이지요. 맨 위의 것은 아래 세개 범주에 포함되지 않을때 쓰려고 하는 것이구요. list에서 base*를 두개 뽑아서 이게 실제로 A instance라면 A::foo(A*)가 호출되도록 하고 싶은거지요. 만약 하나는 A, 하나는 B라면 A::foo(B*)이 없기 때문에 A::foo(base*)가 대신 호출되고요. 그런데 list에서 뽑고 보니, 이게 base*인지라, 두개가 모두 A인지 확인하고 두개 모두 A로 다시 casting 하고 나서야 A::foo(A*)를 호출할수 있다는 거지요. 이런 방법 밖에 없는지, 혹은 다른 보다 세련된 override를 쓰는 방법이 있는지 궁금합니다. 다시한번 감사드립니다. |