是否可以这样做?不使用静态功能或使chordL
成为power
的成员。我真的不明白该怎么做,难道不可能吗?成员函数指针,传递函数作为非成员函数的参数
class power {
double b;
public:
void set(double par){b=par}
double fun(double arg){
return b*pow(arg,2);
}
double execute(double par1, double par2);
};
double chordL(power::*fm, double p1, double p2){ // it's not a member function
return sqrt(pow(fm(p1)-fm(p2),2)+pow(p1-p2,2)); // clearly doesn't work!
}
double power::execute(double par1, double par2){ // it's a member function
double (power::*g)(double);
g=&power::fun;
return chordL(g,par1,par2);
}
好!所以我必须通过tp这是一个类指针。但我怎么能在执行函数中做到这一点?因为我想在执行中使用chordL,这是一个权力的成员! –
'T ::'是否应该指'power'?如果是这样,你需要将'this'一起传递给chordL。 –
是的,对不起!如何通过'this'?它怎么可能是执行功能?这是我不明白的地方! –