다음은 내 응용 프로그램에서 요구하는 요구 사항입니다. 나는 함수 포인터를 받아들이는 클래스 A를 가지고있다. 기본적으로 A의 구현에서 cFunc를 여러 번 호출해야한다.하나의 함수 포인터가 여러 클래스를 가리킬 수 있습니까? member 함수
cFunc 포인터 자체는 응용 프로그램에 따라 다른 기능을 가리켜 야합니다. 따라서 각각의 애플리케이션에 대해 나는 cFunc와 같은 함수 정의와 클래스를 생성하지만 나는이 같은 것을 확인 어떻게
class A {
typedef double (*Def_CFunc)(std::vector<double>);
A(Def_CFunc _cFunc) { // Some implementation}
// Other Functions
};
class B { double someFunc(std::vector<double> b); };
class C { double someOtherFunc(std::vector<double> a); };
int main() {
B firstObj;
C secondObj;
// Depending upon the situation, I want to select class B or C
double (*funcPointer)(std::vector<double>) = firstObj.someFunc; // Error in this line of code
A finalObj(funcPointer);
}
그래서이 포인터 클래스의 멤버 함수를 할당 할 수 없습니다의 멤버 함수와 모든 클래스 주어진 형식을 사용하여 클래스 A를 초기화 할 수 있습니까?
멤버 함수가 실제로 필요합니까? – Mat
그러나 실제로는 함수가 클래스 변수와 매우 밀접하게 통합되어 있으므로 이동하는 가장 좋은 방법 인 것 같습니다. – Nicomoto