class CTestClass
{
private:
typedef int (CTestClass::*FUNCPTR)(int, int);
int _A, _B;
int getPlusResult(int A, int B)
{
return A + B;
}
int getMultiplyResult(int A, int B)
{
return A * B;
}
protected:
int f(int a, int b, FUNCPTR ptr)
{
return (this->*ptr)(a, b);
}
public:
int GetAPlusB()
{
return f(_A, _B, getPlusResult);
}
int GetAMultiplyB()
{
return f(_A, _B, getMultiplyResult);
}
CTestClass(int A, int B): _B(B), _A(A) {};
~CTestClass(void);
};