반응형
#include <iostream>
using namespace std;
// typedef int (*TYPE)(int); 일반 함수를 typedef로 만든는 형식
class ask
{
public:
int x;
int f(int k);
ask();
};
int ask::f(int k)
{
x=k;
cout << x << endl;
return x;
}
ask::ask()
{
x=0;
}
// typedef로 클래스의 멤버 함수 포인터 정의
typedef int (ask::*TYPE)(int); // 클래스 정의 아랫부분에 위치해야 한다.
int main()
{
ask a;
a.f(10);
TYPE b=&ask::f; // &ask::f() 로 하면 에러
(a.*b)(100); // <-- 함수 포인터 사용법 (stastic int f(int)함수의 경우 ask::f() 형식으로 사용);
return 0;
}
반응형
'System Programmings > C++' 카테고리의 다른 글
[C++] 얕은 복사의 착각 (0) | 2010.07.07 |
---|---|
[C++] 클래스 포함 (0) | 2010.07.06 |
[C++] typedef로 함수 포인터 사용 (0) | 2010.07.05 |
[C++] 클래스에서 static과 소멸자 역할 확인 (0) | 2010.07.05 |
[C++] 동적 할당 및 소멸자 사용 (얕은 복사의 문제점) (0) | 2010.07.05 |