函数c ++中的递归函数

Jok*_*ker 1 c++ oop recursion class

假设我有一个包装器函数,它绕过一些较小的递归函数.但是,在调用递归函数之前,包装器会创建递归函数使用的对象.我怎么能用c ++做到这一点?我只需要把它变成自己的类吗?编辑 - 我知道如果我可以把它变成一个班级以及如何从那里开始 - 但我的问题是我需要一个班级还是我可以某种方式逃离而不制作一个?

我做了一个通用的例子来澄清我的问题:

void wrapper()
{
    Object myObject;
    bool recurFun(int x)
    {
        // do some stuff with myObject
        if (some condition){return recurFun(x-1)}
        else {return true}
    }
}
Run Code Online (Sandbox Code Playgroud)

请忽略任何基本的语法类型错误,它不是一个工作示例,只是一个帮助我的问题传达给你们.谢谢!

Pub*_*bby 14

你可以使用lambdas来获取闭包:

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}
    }
}
Run Code Online (Sandbox Code Playgroud)