멤버함수에 대한 함수포인터
글쓴이: ckebabo / 작성시간: 월, 2005/04/11 - 3:46오후
함수 포인터를 이용하여 private속성의 멤버 함수에 접근하려합니다.
class foo { private: void func(); public: void (*p_func)(); foo() { p_func = func; } };
라고 했을때, 제대로 된 타입임에도 불구하고 p_func = func 에서 데이터형에 관련된 에러 메시지가 나오는군요.
혹시나해서
void func() { } int main() { void (*p_func)(); p_func = func; return 0; }
을 컴파일해보면 이건또 잘됩니다.
데이터형에 대한 에러메시지가 나오는걸 보면 클래스의 멤버함수는 뭔가 다른 방법이 있을 것같은데 잘 모르겠네요.
Forums:
void (foo::*p_func)(); 와 같이 선언해야 합니다.
void (foo::*p_func)(); 와 같이 선언해야 합니다.
제가 c++ 개발자가 아니라서 좀 그렇지만.의도하시는 대로 하려면 s
제가 c++ 개발자가 아니라서 좀 그렇지만.
의도하시는 대로 하려면 static으로 하던가. this를 써야 하지 않나요?
오늘 우리는 동지를 땅에 묻었습니다. 그러나 땅은 이제 우리들의 것입니다.
아직도 우리의 적은 강합니다. 그러나 우리는 그들보다 많습니다.
항상 많을 것입니다.
static 을 쓰셔야 함수포인터로 사용가능합ㅤㄴㅣㄷ.
static 을 쓰셔야 함수포인터로 사용가능합ㅤㄴㅣㄷ.
^^ be cool ~
http://fromdj.pe.kr
[quote="zoocmic"]static 을 쓰셔야 함수포인터로 사용가
non-static 멤버 함수에 대한 포인터도 가능합니다. myueho님의 답변을 참고하세요.
non-static 멤버함수를 변수에 어싸인해서 호출하는게 가능한가요 ?
non-static 멤버함수를 변수에 어싸인해서 호출하는게 가능한가요 ?
인스턴스가 없는 녀석이 어케 호출가능한가요,
제가 질문의도를 잘못 이해했나 보네요~
^^ be cool ~
http://fromdj.pe.kr
인스턴스로 호출해야지요. someinstance.pfunc()
인스턴스로 호출해야지요.
someinstance.pfunc() 와 같이요.
[quote="zoocmic"]non-static 멤버함수를 변수에 어싸
저도 이런 것이 있다는 것은 알고 있지만 실제로 써본 적은 없습니다.
아래 링크 참고하세요..http://www.codeproject.
아래 링크 참고하세요..
http://www.codeproject.com/cpp/FastDelegate.asp
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.
댓글 달기