我有一个类,它有一个指向某个函数的指针。默认情况下,该函数必须有一个实现,但例如使用 setFunc(),您可以更改指针。
这是一个示例代码
class A {
private:
int (*func)(int value) = [](int value) { return value + 1; };
int (*funcTest)(int value) = [](int value) {return func(value) + 1; };
public:
void setFunc(int (*other)(int)) {
this->func = other;
}
void setFuncTest(int (*other)(int)) {
this->funcTest = other;
}
A() { }
void test() {
int t = 10;
int s = func(t);
cout << s << endl;
}
};
起初,问题在于从 funcTest 调用 func,但我找到了一个解决方案并重写了这一行:int (*funcTest)(int value) = [&](int value) {return func(value) + 1; };
,
但是有一个问题:не существует подходящей функции преобразования из "lambda []int (int value)->int" в "int (*)(int value)"
请告诉我如何正确实现我所需要的。如果有人分享指向以可理解的语言解释有关 lambda 函数和类似主题的源的链接,我将不胜感激。