클래스 함수포인터 사용시 함수호출에 대한 문제 > IT Note

본문 바로가기
사이트 내 전체검색

IT Note

클래스 함수포인터 사용시 함수호출에 대한 문제
2

View 12,171  | 작성일2009.12.03 14:29

본문

클래스 함수포인터 만드는 방법이 이렇습니다. 

class test
{
public:
     void (test::*pfunc)();
     void run();
     void pointfunc();
};

이렇게 만든뒤

void test::pointfunc()
{
     pfunc = run; 
}

이렇게 할당해 주시면 됩니다. 

하지만 이런식으로 사용이 안됩니다...

main()
{
     test a;
    (a->*pfunc)();
}

이 지랄맞은 상황을 어떻게 대처해야 하는지 미칠듯이 고민하다가 방법을 알았는데
함수 포인터는 클래스 메쏘드 내에서만 불러집니다. 그래서 

class test
{
public:
     void (test::*pfunc)();
     void run();
     void pointfunc();
     void runpfunc(){ (this->*pfunc)(); }
};

이렇게 해주시고 runpfunc() 함수를 호출하시면 됩니다. 이게 대체 무슨차인지 모르겠군요;;;

댓글목록

IT Tip&Tech 목록

게시물 검색

접속자집계

오늘
385
어제
383
최대
6,399
전체
655,304
Copyright © LittleCandle All rights reserved.
문의메일 : littlecandle99@gmail.com
모바일 버전으로 보기