一个类应使用函数指针调用另一类的方法

用户1392416

我已咨询(免责声明):

为了说明我的问题,我将使用此代码(已更新)

#include <iostream>
#include <cmath>
#include <functional>


class Solver{
public:
    int Optimize(const std::function<double(double,double>& function_to_optimize),double start_val, double &opt_val){
        opt_val = function_to_optimize(start_val);
        return 0;
    }
};

class FunctionExample{
public:
    double Value(double x,double y)
    {
        return x+y;
    }
};

int main(){

    FunctionExample F =FunctionExample();
    Solver MySolver=Solver();

    double global_opt=0.0;

    MySolver.Optimize(std::bind(&FunctionExample::Value, &F, std::placeholders::_2),1,global_opt);

    return 0;
}

有没有一种方法可以称为“值”方法?我没有问题可以调用一个函数(没有类)

typedef double (*FunctionValuePtr)(double x);

但这对上面的示例没有帮助。我需要显式方法名称。大多数示例使用静态方法。我不能使用静态方法。

第1232章

您可以使用<functional>STL标头:

double Gradient(const std::function<double(double)>& func, double y)
{
    const double h = 1e-5;
    return (func(y+h) - func(y)) / h;
}

std::cout << D.Gradient(std::bind(&Root::Value, &R, std::placeholders::_1), 8) << std::endl;

就像Joachim Pileborg所评论的那样,您在main中声明了函数,因此您需要删除()

编辑:

要为bind提供一个固定的参数,您可以执行以下操作:

int Optimize(const std::function<double(double)>& function_to_optimize, double &opt_val){
    opt_val = function_to_optimize(opt_val);
    return 0;
}

MySolver.Optimize(std::bind(&FunctionExample::Value, &F, std::placeholders::_1, 1), global_opt);

这会打电话给F.Value(opt_val, 1)您也可以使用固定参数交换占位符。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从一个类的主体调用,从另一类的主体方法调用

来自分类Dev

从另一类调用一个类的成员函数

来自分类Dev

在另一类的方法中使用一个类中的方法

来自分类Dev

如何使用另一类的on单击方法传递一个类的值

来自分类Dev

在执行操作时从另一类调用一个类

来自分类Dev

一个类在Java中“使用”另一类?实现“ uses-a”类

来自分类Dev

从另一类的成员函数返回ENUM(在一个类中定义)

来自分类Dev

使用另一类打印一个类的多个实例

来自分类Dev

另一类的方法调用Lua

来自分类Dev

为什么在C ++中可以将一个类的指针强制转换为另一类的指针?

来自分类Dev

为什么在C ++中可以将一个类的指针强制转换为另一类的指针?

来自分类Dev

从一类调用方法到另一类?

来自分类Dev

从一类到另一类的方法调用不起作用?

来自分类Dev

从一类调用方法到另一类?

来自分类Dev

如何在另一类的方法中使用一类的对象?

来自分类Dev

一类的成员变量可以在另一类的方法中使用吗?

来自分类Dev

为什么一个项目类中的方法不能识别另一类中的方法?

来自分类Dev

您如何将一个类的main方法中定义的变量传递给另一类?

来自分类Dev

如何从另一类的一个类访问变量?SWIFT代码

来自分类Dev

将一个类对象转换为另一类对象

来自分类Dev

如何从另一类的一个类访问变量?SWIFT代码

来自分类Dev

CSS一类忽略另一类

来自分类Dev

一类覆盖另一类的属性

来自分类Dev

使用.htacess将一个类别重定向到另一类别-Wordpress

来自分类Dev

如何在python中获取另一类中一个类的一个变量的引用?

来自分类Dev

一类的对象的静态数组在另一类/构造函数中

来自分类Dev

如何在iOS中将NSobject类数据从一个类传递到另一类?

来自分类Dev

同一类的另一个构造函数中的c ++调用构造函数

来自分类Dev

如何使用另一类中的代码?(Java)

Related 相关文章

  1. 1

    从一个类的主体调用,从另一类的主体方法调用

  2. 2

    从另一类调用一个类的成员函数

  3. 3

    在另一类的方法中使用一个类中的方法

  4. 4

    如何使用另一类的on单击方法传递一个类的值

  5. 5

    在执行操作时从另一类调用一个类

  6. 6

    一个类在Java中“使用”另一类?实现“ uses-a”类

  7. 7

    从另一类的成员函数返回ENUM(在一个类中定义)

  8. 8

    使用另一类打印一个类的多个实例

  9. 9

    另一类的方法调用Lua

  10. 10

    为什么在C ++中可以将一个类的指针强制转换为另一类的指针?

  11. 11

    为什么在C ++中可以将一个类的指针强制转换为另一类的指针?

  12. 12

    从一类调用方法到另一类?

  13. 13

    从一类到另一类的方法调用不起作用?

  14. 14

    从一类调用方法到另一类?

  15. 15

    如何在另一类的方法中使用一类的对象?

  16. 16

    一类的成员变量可以在另一类的方法中使用吗?

  17. 17

    为什么一个项目类中的方法不能识别另一类中的方法?

  18. 18

    您如何将一个类的main方法中定义的变量传递给另一类?

  19. 19

    如何从另一类的一个类访问变量?SWIFT代码

  20. 20

    将一个类对象转换为另一类对象

  21. 21

    如何从另一类的一个类访问变量?SWIFT代码

  22. 22

    CSS一类忽略另一类

  23. 23

    一类覆盖另一类的属性

  24. 24

    使用.htacess将一个类别重定向到另一类别-Wordpress

  25. 25

    如何在python中获取另一类中一个类的一个变量的引用?

  26. 26

    一类的对象的静态数组在另一类/构造函数中

  27. 27

    如何在iOS中将NSobject类数据从一个类传递到另一类?

  28. 28

    同一类的另一个构造函数中的c ++调用构造函数

  29. 29

    如何使用另一类中的代码?(Java)

热门标签

归档