【发布时间】:2018-05-22 13:30:32
【问题描述】:
我有如下类 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,我想从成员函数中返回它。所以...
我不知道代码的最后一行是否定义了我想要定义的内容,但我在写这个答案时考虑了Returning function pointer type。
-
如果最后一行是正确的,那么我想知道如何在
AbstractOdeSolver.cpp中编写实现?我试过了:double (*AbstractOdeSolver::GetRightHandSide)(double y, double t)()但即使是编辑器(Kdevelop)也不接受这一点,我认为通过一个小的修订,它被称为指向成员函数的指针而不是指向函数的指针。
请注意,我想返回一个指向函数的指针,该函数需要两个双精度和 返回一个双精度,如果不能完成也没关系。
【问题讨论】:
-
我知道这两件事不是一回事,但我看到我粘贴的链接,我认为可以按照我的想法完成。另外我不想使用 std::function 如果可能的话,我想要更简单的东西。谢谢@Someprogrammerdude
-
我想我误解了你的问题。但是为什么你不想使用
std::function?使用std::function,您不仅限于非成员函数或非捕获 lambda。使用std::function,您可以像对待任何其他对象一样处理对象(例如std:vector或std::string),并且您可以轻松返回或复制。 -
“但这不被接受”。显示错误消息。
-
@Someprogrammerdude 我想在没有现有课程的情况下解决它,如果我在我粘贴在我的问题上的链接中找不到类似答案的解决方案,我将立即使用 std::function 因为我已阅读有关此内容。再次感谢您。
-
@Jarod42 在编辑器中,该函数为红色,并写了一些关于“{”的内容。