| [ CnUnix ] in KIDS 글 쓴 이(By): testors (testors) 날 짜 (Date): 2002년 5월 28일 화요일 오후 03시 00분 05초 제 목(Title): Re: [Q] class내의 member함수 포인터 넘겨 포인터를 통해 인자로 넘겨주는 멤버 함수는 꼭 static 이어야 될꺼에요. 그렇지 않고선 이런 문제가 생기죠. class X { public: int a() { // 여기서 this따위나 혹은 X의 멤버를 쓰게 되면, a 의 포인터만을 넘겨받은 녀석은 이를 해석할 방법이 없겠죠. } }; 해서 컴파일 타임에서 에러를 내준 것이겠죠. 위의 예제는 아래와 같이 해주어야 될꺼에요. #include<iostream> class A { public: static int a(int i); static int b(int i); void f( int (*pf)(int) ); }; int A::a(int i){return i;} int A::b(int i){return 2*i;} void A::f( int (*pf)(int) ){std::cout << (*pf)(1) << '\n';} int main() { A mc; mc.f( mc.a ) ; mc.f( A::b ); return 1; } - Testors |