c++ - 函数内部的递归函数c++

标签 c++ oop class recursion

假设我有一个围绕一些较小的递归函数的包装函数。但是,包装器在调用递归函数之前创建了一个递归函数使用的对象。我怎么能在 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/

相关文章:

c++ - 动态数组 C++ 的 Valgrind 内存泄漏

c++ - 随对象在OpenGL中移动而改变旋转点?

c++ - 为什么在 ubuntu linux 的 c++ 的 g++ 编译器中局部变量被初始化为 0?

python - 我的 Python 类中的奇怪行为

JavaScript - 检查对象中是否存在原型(prototype)实例

jquery - 根据星期几添加类(class)

c++ - cpp 没有匹配的函数调用来调用构造函数。为什么?

c++ - 特殊标牌标注字符

java - 访问数组中的对象

Python:创建一个类的多个实例