클래스 함수포인터 사용시 함수호출에 대한 문제            
            
        
    
        View 14,174         | 작성일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() 함수를 호출하시면 됩니다. 이게 대체 무슨차인지 모르겠군요;;;
 
                 라이트모드
라이트모드 다크모드
다크모드 영원
 영원