假设我有一个围绕一些较小的递归函数的包装函数。但是,包装器在调用递归函数之前创建了一个递归函数使用的对象。我怎么能在 C++ 中做到这一点?我只需要让它成为自己的类(class)吗?编辑 - 我知道我是否可以进入一个类(class)以及如何从那里开始 - 但我的问题是我是否需要一个类(class)或者我可以以某种方式逃脱而不去上课?
我举了一个通用的例子来澄清我的问题:
void wrapper()
{
Object myObject;
bool recurFun(int x)
{
// do some stuff with myObject
if (some condition){return recurFun(x-1)}
else {return true}
}
}
请忽略任何基本的语法类型错误,这不是一个简单的工作示例,可以帮助将我的问题传达给你们。谢谢!
最佳答案
您可以使用 lambda 来获取闭包:
void wrapper()
{
Object myObject;
std::function<bool(int)> recurFun;
recurFun = [&](int x) -> bool {
// do some stuff with myObject
if (some condition){return recurFun(x-1)}
else {return true}
}
}
关于c++ - 函数内部的递归函数c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16246795/