1

我得到了那个错误,当我使用类时,我使用函数指针得到了这个错误。我的功能'ope'功能我该如何解决

    evaluator::function(){
    double (*ope) (double,double) ;
    ope=&evaluator::add;
}

double evaluator::add( double a, double b){
    return (a+b);
    }
4

2 回答 2

1

这个:

double (*ope)(double, double);

应该:

double (evaluator::*ope)(double, double);
//      ^^^^^^^^^^^^

因为您使用的是指向成员的指针。

于 2013-07-14T16:01:20.527 回答
0

使用以下声明:

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;
}
于 2013-07-14T16:08:36.637 回答