从类成员函数返回函数指针

沙维亚拉米查利斯

我有一个 AbstractOdeSolver 类,如下所示:

class AbstractOdeSolver
{
private:
    double (*rightHandSide)(double y,double t);

public:
    AbstractOdeSolver(int nop,double initime, double fintime, double initval, double(*pf)(double,double));
    double (*GetRightHandSide)(double y, double t)();
};

所以我有一个带有私有成员函数指针的类,即 rightHandSide,我想从成员函数中返回它。所以 ...

  1. 我不知道代码的最后一行是否定义了我想要定义的内容,但我写这个答案时想到了Returning function pointer type

  2. 如果最后一行是正确的,那么我想知道如何在AbstractOdeSolver.cpp? 我试过了:

    double (*AbstractOdeSolver::GetRightHandSide)(double y, double t)()
    

    但这甚至不被编辑器(Kdevelop)接受,我认为经过一个小的修改,它被称为指向成员函数的指针,而不是指向函数的指针。

请注意,我想返回一个指向函数的指针,该函数接受两个双精度值并返回一个双精度值,如果无法完成,则可以。

用户2807083

IIUC你要什么,最简单的方法是使用typedef

class AbstractOdeSolver 
{
public:
    typedef double (*FSolver)(double, double);
    ....
    FSolver GetRightHandSide();
};
....
AbstractOdeSolver::FSolver AbstractOdeSolver::GetRightHandSide()
{ 
    // just for an example:
    return +[](double, double) -> double { return 0.0; }    
}

同样没有typedef

class AbstractOdeSolver
{
public:
    double (* GetRightHandSide())(double, double);
};

double (*AbstractOdeSolver::GetRightHandSide())(double, double)
{
    return +[](double, double) -> double {return 0.0; };
}

并使用@ Jarod42 建议的尾随返回类型:

class AbstractOdeSolver
{
public:
    auto GetRightHandSide() -> double (*)(double, double);
};

auto AbstractOdeSolver::GetRightHandSide() -> double (*)(double, double)
{
    return +[](double, double) -> double {return 0.0; };
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从const成员函数返回类成员的指针

来自分类Dev

指向函数的指针,返回函数指针

来自分类Dev

指向函数的指针,返回函数指针

来自分类Dev

返回函数指针类型

来自分类Dev

返回函数指针数组

来自分类Dev

返回指向类成员函数的指针

来自分类Dev

返回函数指针语法的函数

来自分类Dev

成员函数返回指向成员函数的指针

来自分类Dev

接收和返回函数指针的函数指针的类型?

来自分类Dev

返回函数的函数,返回函数等

来自分类Dev

函数返回函数?

来自分类Dev

模板类的成员函数指针

来自分类Dev

指向类的成员函数的指针

来自分类Dev

指向类成员函数的指针

来自分类Dev

C ++ 11中的函数返回函数指针

来自分类Dev

指向类成员函数的函数指针

来自分类Dev

类成员函数上的函数指针

来自分类Dev

从成员函数返回模板类

来自分类Dev

返回函数的代码

来自分类Dev

返回函数-PHP

来自分类Dev

用 && 返回函数?

来自分类Dev

为什么在函数指针或返回函数指针的函数之前放几十个*?

来自分类Dev

OCaml:返回函数的函数

来自分类Dev

返回类函数指针c ++

来自分类Dev

指向类模板成员的函数指针

来自分类Dev

如何通过指针从函数访问类的成员?

来自分类Dev

通过指向类成员的指针调用函数

来自分类Dev

如何获得成员函数指针的类?

来自分类Dev

派生类上的成员函数指针