我得到了那个错误,当我使用类时,我使用函数指针得到了这个错误。我的功能'ope'功能我该如何解决
evaluator::function(){
double (*ope) (double,double) ;
ope=&evaluator::add;
}
double evaluator::add( double a, double b){
return (a+b);
}
这个:
double (*ope)(double, double);
应该:
double (evaluator::*ope)(double, double);
// ^^^^^^^^^^^^
因为您使用的是指向成员的指针。
使用以下声明:
double (A::*func)(double, double)
并像这样拨打电话:
return ((*this).*func)(5, 4);
希望它有所帮助。
class A {
public:
double foo();
double foo2(double, double);
};
double A::foo() {
double (A::*func)(double, double);
func = &A::foo2;
return ((*this).*func)(5, 4);
}
double A::foo2(double a, double b) {
return a + b;
}