c++ - 递归调用函数对象

标签 c++ function-object

如何从自身内部调用函数对象?看来我不能使用 this。示例:

class factorial {
  public:
  int operator()(int n) {
    if (n == 0)
      return 1;
    return n * ??(n-1);
  }
};

我要在 中放置什么??

最佳答案

#include <iostream>

class factorial {
public:
  int operator()(int n) {
    if (n == 0)
      return 1;
    return n * (*this)(n-1);
  }
};

int main()
{
    std::cout << factorial()(5) << std::endl;
}

对我来说效果很好。 Live example.

关于c++ - 递归调用函数对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17928321/

相关文章:

c++ - 模板成员变量

c++ - 我究竟该如何使用 Boost?

C++ 重载运算符<<和运算符>>

C++ #ifndef TOKEN #define TOKEN

c++ - 内存重用实际是什么意思?

c++ - 如何在 for_each 方法中使用自己类的函数?

c++ - 获取转换为 std::function 的函数对象中的状态

python - 可以将函数作为参数传递到对象的方法中,该函数可以引用该对象吗?

factorial - 如何计算阶乘?

c++ - 序列化函数对象