使用另一个类成员的类成员函数指针

时间:2013-02-19 01:41:10

标签: c++ class methods function-pointers

我正在尝试创建一个能够找到函数数值推导的代码。 我还有一个多项式类描述如下:

    class polynomial
    {
    public:
        polynomial(Vector, int);
        polynomial();
        ~polynomial();

        double returnValue(double);
        void print();

    private:
        int Degree;
        Vector Coeficients;
    };

我的数字推导有以下原型:

 double numericalDerivation( double (*F) (double), double x);

我想将returnValue方法传递给numericDerivation,这可能吗?

1 个答案:

答案 0 :(得分:0)

是的,这是可能的,但不要忘记它是成员函数:如果没有(指针)类型为{{1的对象的对象,则无法调用它在其上调用它。

以下是函数签名的外观:

polynomial

以下是调用它的方法:

double numericalDerivation(double (polynomial::*F)(double), polynomial* p, double x)
{
    ...
    (p->*F)(x);
    ...
}

或者,您可以使用double d = ...; polynomial p; numericalDerivation(&polynomial::returnValue, &p, d); 对象作为函数的参数,让std::function<>负责将对象绑定到成员函数:

std::bind()