64,674
社区成员
发帖
与我相关
我的任务
分享
//Cfunc.h
#ifndef _CFUNC_H_
#define _CFUNC_H_
#include <iostream>
using namespace std;
class Cfunc
{
typedef double (Cfunc::*FUN)(double, double); //声明函数指针
public:
double func1(double x, double y) //不需要inline,在里面定义函数默认为内联函数
{
return (x+y);
}
double func2(double x, double y)
{
return 2.0 * (x+y);
}
double func3(double x, double y)
{
return 3.0 * (x+y);
}
double func4(double x, double y)
{
return 4.0 * (x+y);
}
public:
FUN f[4]; //定义函数指针数组
void calculate(double x, double y)
{
double s;
f[0] = &Cfunc::func1;//指向成员函数
f[1] = &Cfunc::func2;
f[2] = &Cfunc::func3;
f[3] = &Cfunc::func4;
for(int i = 0; i != 4; i++)
{
s = (this->*f[i])(x,y);
cout<<"Num of Func: "<<i<<" result: "<<s<<endl;
}
}
};
#endif
Cpp文件
#include "Cfun.h"
#include <iostream>
using namespace std;
int main()
{
Cfunc test;
test.calculate(1.5,2.0);
return 0;
}