구조체를 함수 포인터로 초기화하려고하지만 전역 함수로 완료하지 않으면 문제가 발생합니다. 다음 코드는 작동 : 나는 코드가 더 이상 작동 MyClass
의 함수로 tester
기능이 작업을 수행하려고 할 때마다C++ : 구조체 및 설정 함수 포인터 초기화
float tester(float v){
return 2.0f*v;
}
struct MyClass::Example{
typedef float(*MyFunc)(float);
MyFunc NameOfFunc;
float DoSomething(float a){
return NameOfFunc(a);
}
};
struct Example e;
e.MyFunc = tester;
내 문제입니다. 즉, 테스터 기능을 다음과 같이 변경합니다 :
float MyClass::tester(float v){
return 2.0f*v;
}
모든 도움을 주실 수 있습니다 (링크 포함)! 나는 문제에 대한 주위에 인터넷 검색을하지만
당신은 "멤버 함수에 대한 C++ 포인터"를해야합니다. BTW, 멤버 함수는 컨텍스트 (객체가'this')가 필요하므로 일반 함수와 같은 방법으로 사용할 수 없습니다. –
'MyClass :: tester'는'MyClass'의 비 정적 멤버에 의존하지 않는 것 같기 때문에 이전에했던 것처럼'static' 또는 무료 함수가되기를 원하십니까? (그리고 나서이 코드는 작동 할 것입니다.) –