안녕하세요. 천리안 프로그래머 포럼 C++Builder 담당 임펠리테리입니다.
원칙적으로는 안됩니다. 이에 대해서는 작년에 빌더라운지에 연재했던 팁들중 하나를
소개하면서 언급한 적이 있습니다. (리스트뷰의 배경에 그림넣기)
간단히 다시 설명하면, 클래스의 멤버함수인 경우에는 암시적인 인자가 하나 더 존재
하기 때문입니다. 이 암시적인 인자는 클래스의 객체인 this이며, 이것때문에 클래스
의 멤버함수는 항상 내부적으로는 선언된 글자그대로의 인자리스트보다 하나 더 많은
인자를 가지게 됩니다. 인자리스트가 다르므로 당연히 다른 함수로 인식되는 겁니다.
팁을 다시 읽어보시면 아시겠지만, 한가지의 예외가 있습니다. 저도 그 내용을
찾아본지가 너무 오래되어 확실한지 장담은 하지 못하겠습니다만, 멤버함수가
static으로 선언되는 경우에는 그 함수가 클래스에 종속되지 않고 전역적으로 존재하
는 관계로 암시적인 인자는 갖지 않는다고 기억합니다. 그러니까, 해당 멤버함수를
스태틱으로 선언하고 다시한번 시도해보시기 바랍니다.
안되면 어떡하냐구요? 쩝.. 저로서는 더이상 도울 방법이 없겠는데요. 하지만...
될겁니다.
그럼 참고하시길...
임펠리테리 박지훈이었습니다.
( http://myhome.thrunet.com/~cbuilder, cbuilder@thrunet.com)
|