【发布时间】:2015-03-11 09:19:31
【问题描述】:
如何在函数指针中包含参数?
这段代码创建了一个可以添加两个整数的函数指针:
int addInt(int n, int m) {
return n+m;
}
int (*functionPtr)(int,int);
functionPtr = addInt;
(*functionPtr)(3,5); // = 8
例如,我想创建一个第一个参数始终为 5 的函数指针,以便该函数接受一个 int 并添加五个。还有一个第一个参数是 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来执行此操作。 -
如果你要向某个东西添加值,为什么还需要一个函数指针?顺便说一句,函数没有默认值,只有构造函数
-
@Pandrei 这是一个小例子,不是我的实际问题
-
@Anna:您可能应该询问您的实际问题,并且您当然应该提及您是否使用 C++11、C++14 或某些旧版本的 C++ 标准进行编码。
标签: c++ function-pointers