헤더는
#include<tr1/functional>
클래스 내에서 선언할 때
class A
{
std::tr1::function<void (A*, int)> f;
// void A::f(int); 형태의 함수를 선언하는 것이다.
...
}
f에 함수를 대입할 때
f = &A::someFunction;
// void A::someFunction(int) {...}
// 반환값이 있더라도 여기에 명시할 필요는 없다. 클래스와 이름만 있으면 된다.
그리고 아마도 가장 중요한 호출
f(this, 100);
클래스 외부에서 호출하는 건 안해봤는데, 일단 안 하는게 좋을거 같고...
꼭 해야 한다면 클래스 포인터를 얻어서 this 자리에 넣으면 될 것 같다.
은근히 문법이 귀찮아서 자주 까먹는고로 써놓음

댓글을 달아 주세요