setCallback(일반함수포인터) 여기에 함수포인터를 넘겨야돼.
이 함수포인터의 형식은 func(int a, int b) 이런식이구
여기다가 내가 일반함수 대신 A라는 클래스의 멤버함수를 인자로 넘기고 싶거덩
근데 멤버함수는 암묵적으로 첫번째인자가 this 잖아..
그래서 저기다가 넘길수가 없어
예를들어서
Class A
{
func(int a, int b)
}
이렇게 하구 setCallback(A::func);
요렇게 넘기고 싶은데 이렇게 할수가 없는이유가
A의 멤버함수인 func 는 실제로 func(this, int a, int b) 뭐 이런식이란 말이지..
그래서 stl bind 라든가 mem_func 이런거 찾아봤는데 이거갖고는 못할거같고..
방법이 없을까 횽들 도와주삼
3 줄 요약 :
어떤 함수가 있는데 함수포인터를 인자로 받는다.
근데 멤버함수포인터를 넘기고싶다
멤버함수포인터는 암시적으로 this 를 가지고 있는데 이문제를 어떻게 해결하여 넘겨야하는가
멤버함수를 함수포인터로 넘길려면...?
켁큇(kekkekba)
2011-07-15 17:44
추천 0
댓글 11
다른 게시글
-
ㅉㅉ 니들 수준을 다 알만하다 [5]개쉛기(legionss) | 11.07.15추천 0
-
형들 c++안배우고 바로 자바 배워도 상관 없음요? [1]플래닛댄스(didtkddhks) | 11.07.15추천 0
-
저 기억하시는분? [7]켁큇(kekkekba) | 11.07.15추천 0
-
드림스파크 갱신해본 형들 [4]익명(118.217) | 11.07.15추천 0
-
뽀로로의 가치가 그렇게 높은가? [4]진짜?(70.72) | 11.07.15추천 0
-
요즘 c언어를 하는대 너무 어려워요ㅠ.ㅠ [1]iljeomobol..(rntjr) | 11.07.15추천 0
-
고생 하게 생겼네..... [1]헛소리(hanamoni) | 11.07.15추천 0
-
아 횽등 나 지금 비쥬얼 2008로 c++ 컴파일 할려고하는데 도와줘요,소라마녀(tiger953) | 11.07.15추천 0
-
여기 갤이 그 유명한Gavi_cp(qlrk1) | 11.07.15추천 0
-
키사노바//잘종료되도 그값을 알수가없으니 문제 [3]오마이갓넬..(thvxm1) | 11.07.15추천 0
설명해주기 귀찮다 패스
나도 패스
키워드라도 알려주세여 ㅜ
멤버함수를 static으로 선언하면 됨.
단 그럴경우 클래스 인스턴스에 접근할수 없음
내가 원하는건 클래스 인스턴스에 접근 할 수 있는 일반 멤버 함수 인데.. 그건 안될까?
기본적으로는 그렇게 못해
근데 저런 콜백함수들은 대부분 void* userdata 식의 인자를 넣을 수 있도록 되어있는 경우가 많은데 그런 경우에는
콜백함수의 userdata 인자에 this를 때려박으면 this->do_something(); 식으로 클래스 인스턴스에 접근할 수 있도록 할 수 있다
정확히는 ((my_class*)this)->do_something(); 이 되겄재
횽 ㄳ여 인자중에 userdata 넘기는게 있네요. 여기다가 this 넘겨서 해결했음요 ㅋ