C++에서 다른 멤버 함수 (또는 함수 포인터)에 오버로드 된 멤버 함수를 어떻게 할당 할 수 있습니까?멤버 함수를 오버로드로 멤버 함수 포인터에 할당하는 방법은 무엇입니까?
내 목표는 회원 기능을 감싸는 것입니다. 다음 코드가 있고 2 "Do"가 있기 때문에 작동하지 않습니다. 내가하고 싶은 일은 Do1
또는 Do2
에서 Do
까지를 double *
또는 double **
으로 바꾸는 것입니다. 따라서 Do
만 실행할 수 있으며 Do1
또는 Do2
을 신경 쓸 필요가 없습니다.
class Sample {
int (*Do)(double *arr);
int (*Do)(double **arr);
int Do1(double *arr);
int Do1(double **arr);
int Do2(double *arr);
int Do2(double **arr);
};
을 (어쩌면, 나는. Do1
및 Do2
사이에서 선택해야하는 조건을 지정한다) 또는 당신은이 목표에 대한 제안 사항이 있습니까?
추가 : Thomas의 경우 함수 객체 (펑터)는 좋은 생각이지만 과부하 만 해결합니다. 기능 (예 : Do1
또는 Do2
)을 선택하고 싶습니다. 나는 몇 가지 규정 된 기능을 가지고 있으며 그들 중 하나를 선택할 수 있습니다 Do
. 그러나 사용자 정의 기능을 Do
에 할당하려고합니다. 예를 들어 Do
을 실행하면 Do1
, Do2
또는 내 자신의 새로운 사용자 지정된 기능을 실행할 수 있습니다. (인스턴스를 만들 때 어떤 기능이 실행될지를 설정해야합니다.)
.. 내 상황에서는 C++ 11을 사용할 수 없습니다. (내가 원하지만 제 서버에는 더 오래된 GCC 버전이 있습니다)
함수 포인터 대신 함수 개체를 사용해 보셨습니까? –