一般函数指针的使用
int addd(int a, int b)
{
return a + b;
};
int subb(int a, int b)
{
return a - b;
};
int func(
int a,
int b,
int pOperator(int, int))
{
return pOperator(a ,b);
};
void testClassOp()
{
int addd(int, int);
int subb(int, int);
int a = 100;
int b = 23;
cout << func(a, b, addd) << endl;
cout << func(a, b, subb) << endl;
}
类成员函数指针的使用
#pragma once
#include <iostream>
using namespace std;
class CMathematicalOperators
{
public:
CMathematicalOperators(void);
~CMathematicalOperators(void);
public:
void testClassOp();
private:
int func(int a, int b,
int (CMathematicalOperators::*pOperator)(int, int));
int addd(int a, int b);
int subb(int a, int b);
};
int CMathematicalOperators::addd(int a, int b)
{
return a + b;
};
int CMathematicalOperators::subb(int a, int b)
{
return a - b;
};
int CMathematicalOperators::func(
int a,
int b,
int (CMathematicalOperators::*pOperator)(int, int))
{
return (this->*pOperator)(a ,b);
};
void CMathematicalOperators::testClassOp()
{
int (CMathematicalOperators::*pAdd)(int, int) = &CMathematicalOperators::addd;
int (CMathematicalOperators::*pSub)(int, int) = &CMathematicalOperators::subb;
int a = 100;
int b = 23;
cout << func(a, b, pAdd) << endl;
cout << func(a, b, pSub) << endl;
}