Я знаю, что это звучит ужасно запутанно, у меня есть базовый шаблонный класс, который имеет указатель на функцию, дочерний класс (который больше не является классом шаблона) должен использовать этот указатель функции, чтобы указать на функцию-член дочернего класса, и я получаю все виды ошибок .. Я нарушил какой-то универсальный закон C ++? вот псевдокод:
template <class T>
class Base{
public:
typedef void (Base<T>::*fptr) (char in);
void funcA(fptr FuncToCall){
FuncToCall('a');
}
...
};
class Child:public Base<char>{
public:
void funcToCall(){...}
void funcB(){
funcA(funcToCall);
}
}
Вот сообщение об ошибке, которое я получил:
ошибка C2664: 'Base ‹T> :: funcA': невозможно преобразовать параметр 1 из 'void (__thiscall Child :: *) (char)' в 'void (__thiscall Base‹ T> :: *) (char)'