이것은 나를 막았습니다. 정적 (비 정적) 멤버 함수에 대한 포인터 인 정적 클래스 변수를 갖고 싶습니다. 나는 여러 가지 방법을 시도했지만 아무런 운이 없었습니다 (typedef
을 사용하는 것을 포함하여, 다른 오류 세트를 줄 것 같았습니다). 아래 코드에서 정적 클래스 함수 포인터 funcptr
이 있는데 클래스 외부에서 성공적으로 호출 할 수 있지만 멤버 함수 CallFuncptr
내에서 호출하지 못했습니다. 원하는 작업입니다. 어떤 제안?정적 멤버 함수 포인터가 아닌 정적 멤버 함수를 보유하려면
#include <stdio.h>
class A
{
public:
static int (A::*funcptr)();
int Four() { return 4;};
int CallFuncptr() { return (this->*funcptr)(); }
// doesn't link - undefined reference to `A::funcptr'
};
int (A::*funcptr)() = &A::Four;
int main()
{
A fred;
printf("four? %d\n", (fred.*funcptr)()); // This works
printf("four? %d\n", fred.CallFuncptr()); // But this is the way I want to call it
}
많은 도움을 주셔서 감사합니다! – bandjalong