c++ - 如何在函数指针中包含参数?

标签 c++ function-pointers

如何在函数指针中包含参数?

这段代码创建了一个可以添加两个整数的函数指针:

int addInt(int n, int m) {
    return n+m;
}
int (*functionPtr)(int,int);
functionPtr = addInt;
(*functionPtr)(3,5); // = 8

例如,我想制作一个第一个参数始终为 5 的函数指针,以便该函数接受一个 int 并添加 5。另一个第一个参数是 8 的。

这可以使用 addInt 吗?像这样的东西:

// make-believe code that of course won't work 
int (*functionPtr)(int);
functionPtr = addInt(5);
(*functionPtr)(3); // = 8
(*functionPtr)(9); // = 14

最佳答案

像这样使用 std::bind:

using namespace std::placeholders;
auto f = std::bind(addInt, 5, _1);

f(1); //returns 6

关于c++ - 如何在函数指针中包含参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28982556/

相关文章:

c++ - opencv的private.hpp是什么??哪个模块包含 private.hpp 文件?

c++ - Callable 概念和 std::is_function 类型特征有什么区别?

c++ - 如何检查忽略其模板参数的类型

c++ - 点对点线性渐变?

c++ - 上下文无关的 C++ TCP 服务器类

将函数指针转换为另一种类型

c++ - 我如何使用她的地址/不使用方法名称访问类的虚拟方法

c++ - 如何组合 lambda、可变参数函数和函数指针?

C++)为什么 const int*& 参数不能采用 int* 参数?

c++ - Opencv 300 - 随机森林预测返回错误答案