Сделал так
#include <iostream>
using namespace std;
template <class Item>
class A {
public:
typedef int (A<Item>::*Call_t)(Item);
A(unsigned int flag) {
Call=GetFunc(flag);
}
int Add(Item Data) {
return (*Call)(Data);
}
Call_t GetFunc(unsigned int flag) {
return (flag & 1)
? &A::_FuncA
: &A::_FuncB;
}
int _FuncA(Item Data){return 3;}
int _FuncB(Item Data){return 5;}
Call_t Call;
};
void main()
{
A<int> x(1);
cout<<x.Add(50);
}
Вылезает такая ошибка:
результатом вычисления фрагмента не является функция, принимающая 1 аргументов