类的成员函数通过指针调用同类中另外成员函数的问题
我在C++Builder里自己写了一个类
在头文件里是这样写的:
class Region3
{
private:
double fgsnsef(double x[],double y[],int n);
typedef double (Region3::* MFP)(double x[],double y[],int n);
int fgsnse(int n, double eps,double x[],double y[],int js,MFP pf);
public:
void ph_dT(void);
}
在对应的CPP文件这样写:
double Region3::fgsnsef(double x[],double y[],int n)
{……}
int Region3::fgsnse(int n,double eps,double x[],double y[],int js,MFP pf)
{
……
double f = pf(x,y,n);
……
}
void Region3::ph_dT(void)
{
……
MFP pf = ®ion3::fgsnsef;
int ddcs = fgsnse(2,eps,x,y,js,pf);
……
}
就是说在ph_dT()里调用fgsnse(),而且fgsnse()要调用本类中另外的成员函数,比如fgsnsef(),
具体是哪个成员函数,则通过参数pf传入,pf是指向成员函数的指针
但是编译到在fgsnse()中负责调用的语句时出错:
就是 double f = pf(x,y,n);
说是 Call of nonfunction
如果改成:double f = (Region3::* pf)(x,y,n);
则说 Identifier Expected
那么在类的成员函数里通过指针调用本类中的其他成员函数应该怎么写呀?
或者是给pf赋值的语句 MFP pf = ®ion3::fgsnsef; 写错了?