0
我知道这已被多次询问,大部分答案都很难理解。 你能帮我弄清楚我做错了什么吗?C++指针使用std :: function成员函数
#include <iostream>
#include <algorithm>
#include <vector>
#include <iterator>
#include <functional>
class A{
public:
A(double i){
_b = i;
}
double square(double i){
return i*i*_b;
}
private:
double _i;
double _b;
};
double cube(double (*objfunc)(double), double x){
return objfunc(x)*x;
}
int main()
{
double v = 2.0;
A a(v);
using std::placeholders::_1;
std::function<double(double)> f_square = std::bind(&A::square, &a, _1);
double x = cube(f_square,3.0);
std::cout << " x = " << x << std::endl;
}
非常感谢您的建议。
鉴于类A和立方函数,因为它们是如何在主函数中使用立方函数?
更新:只有这样,才能做到这一点是修改:
double cube(std::function<double(double)> objfunc, double x){
return objfunc(x)*x;
}
您正在尝试传递'std :: function'实例,其中需要一个普通函数指针。前者不能转换为后者。 –
你能帮我修改主要功能吗?什么是使用函数正方形的正确方法? – user1453817
我觉得不能做成员函数指针不是简单的指针。但我的理解非常有限。因此,让我们等待专家进来。 – user1453817