递归调用函数对象

2023-12-23

如何从函数对象内部调用函数对象?看来我不能使用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;
}

对我来说效果很好。活生生的例子。 http://coliru.stacked-crooked.com/view?id=3ae0c6e8fb2d091f64563c8e14a14fd5-b24e7def60aba11ee8094350eb73164e

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

递归调用函数对象 的相关文章

  • 使用 gcc 在 Linux 上运行线程构建块 (Intel TBB)

    我正在尝试为线程构建块构建一些测试 不幸的是 我无法配置 tbb 库 链接器找不到库 tbb 我尝试在 bin 目录中运行脚本 但这没有帮助 我什至尝试将库文件移动到 usr local lib 但这又失败了 任何的意见都将会有帮助 确定您
  • 结构化绑定中缺少类型信息

    我刚刚了解了 C 中的结构化绑定 但有一件事我不喜欢 auto x y some func is that auto正在隐藏类型x and y 我得抬头看看some func的声明来了解类型x and y 或者 我可以写 T1 x T2 y
  • STL 迭代器:前缀增量更快? [复制]

    这个问题在这里已经有答案了 可能的重复 C 中的预增量比后增量快 正确吗 如果是 为什么呢 https stackoverflow com questions 2020184 preincrement faster than postinc
  • C# 异步等待澄清?

    我读了here http blog stephencleary com 2012 02 async and await html that 等待检查等待的看看它是否有already完全的 如果 可等待已经完成 那么该方法将继续 运行 同步
  • C++11 删除重写方法

    Preface 这是一个关于最佳实践的问题 涉及 C 11 中引入的删除运算符的新含义 当应用于覆盖继承父类的虚拟方法的子类时 背景 根据标准 引用的第一个用例是明确禁止调用某些类型的函数 否则转换将是隐式的 例如最新版本第 8 4 3 节
  • 无限循环与无限递归。两者都是未定义的吗?

    无副作用的无限循环是未定义的行为 看here https coliru stacked crooked com view id 24e0a58778f67cd4举个例子参考参数 https en cppreference com w cpp
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 方程“a + bx = c + dy”的积分解

    在等式中a bx c dy 所有变量都是整数 a b c and d是已知的 我如何找到整体解决方案x and y 如果我的想法是正确的 将会有无限多个解 由最小公倍数分隔b and d 但我只需要一个解决方案 我可以计算其余的 这是一个例
  • C# 列表通用扩展方法与非通用扩展方法

    这是一个简单的问题 我希望 集合类中有通用和非通用方法 例如List
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • LINQ:使用 INNER JOIN、Group 和 SUM

    我正在尝试使用 LINQ 执行以下 SQL 最接近的是执行交叉联接和总和计算 我知道必须有更好的方法来编写它 所以我向堆栈团队寻求帮助 SELECT T1 Column1 T1 Column2 SUM T3 Column1 AS Amoun
  • 如何在当前 Visual Studio 主机内的 Visual Studio 扩展中调试使用 Roslyn 编译的代码?

    我有一个 Visual Studio 扩展 它使用 Roslyn 获取当前打开的解决方案中的项目 编译它并从中运行方法 程序员可以修改该项目 我已从当前 VisualStudioWorkspace 成功编译了 Visual Studio 扩
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • 编译时展开 for 循环内的模板参数?

    维基百科 here http en wikipedia org wiki Template metaprogramming Compile time code optimization 给出了 for 循环的编译时展开 我想知道我们是否可以
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • 在OpenGL中,我可以在坐标(5, 5)处精确地绘制一个像素吗?

    我所说的 5 5 正是指第五行第五列 我发现使用屏幕坐标来绘制东西非常困难 OpenGL 中的所有坐标都是相对的 通常范围从 1 0 到 1 0 为什么阻止程序员使用屏幕坐标 窗口坐标如此严重 最简单的方法可能是通过以下方式设置投影以匹配渲
  • MySQL Connector C/C API - 使用特殊字符进行查询

    我是一个 C 程序 我有一个接受域名参数的函数 void db domains query char name 使用 mysql query 我测试数据库中是否存在域名 如果不是这种情况 我插入新域名 char query 400 spri
  • 现代编译器是否优化乘以 1 和 -1

    如果我写 template

随机推荐

  • 在delphi中更改字段值的DBGRID行颜色

    如何更改delphi中字段上具有相同值的dbgrid行的颜色 例如具有相同老师的所有行 注意 这些行被分组 并且在 dbgrid 中彼此相邻 提前致谢 您可以使用 DBGrids onDrawColumnCell 事件轻松实现此操作 pro
  • MSVC 是否有像 gcc 的 -M 那样的依赖生成标志

    MSVC 是否有像 gcc 那样的依赖生成标志 M flag 我用过的每个 C 编译器都有这种标志 如何创建依赖项 自动使用 MSVC cl 编译器 我只对最新的编译器版本感兴趣 即 MSVC9 或更高版本 但如果它与 MSVC8 一起工作
  • 在 HTML 页面中包含数据的最佳方式是什么?

    在 HTML 页面中包含数据的最佳方式是什么 该数据不是人类可读的 并且在页面加载后将由脚本处理 我能想到的选项是 在隐藏 空上使用类和标题属性 div or span 页面内的元素 JSON 中的 span div
  • std::regex -- 是否有一些需要链接的库?

    我收到以下代码的链接器错误 include
  • 如何在 Ruby 中输出尾随零? [复制]

    这个问题在这里已经有答案了 请考虑以下代码 class Book def initialize price price price end def book price puts Price price end end book1 Book
  • 点击隐藏选项卡时谷歌地图部分加载

    我使用 2 个选项卡 第一个用于显示列表 另一个用于显示地图 第一次加载页面时 默认显示 1 个选项卡 单击第二个选项卡时显示地图 但是当我单击列表选项卡并再次单击地图选项卡时 地图部分加载 这是我的 JAVASCRIPT 代码 docum
  • Visual Studio 参考和平台之间的冲突

    自从我将 C ASP Net 项目的目标框架升级到 4 6 1 后 我在构建过程中收到了很多冲突警告 50 多条消息 例如 考虑将程序集 System Runtime InteropServices RuntimeInformation C
  • 将 WHERE IN 子句添加到 JPA 规范

    我正在尝试实现受 IN 子句限制的搜索功能 我想实现具有过滤器限制的搜索实现 GetMapping find public Page
  • pandas dataframe滚动窗口与groupby

    我可以添加一个新列c这是最后两个值的总和b如下所示 df c df b rolling window 2 sum shift df a b c 0 1 3 NaN 1 1 0 NaN 2 0 6 3 0 3 1 0 6 0 4 0 0 6
  • 计算每个类别列的出现次数

    我正在尝试计算每个 SNP 名称的 iets 列中 Opp 的出现次数 最终我想将 Opp 的出现次数除以 df MM library data table df lt structure list SNP structure c 1L 1
  • 在 R markdown 中混合文本和引用

    是否可以在 R markdown 文档中混合常规文本和引用 使它们看起来如下 作者 2018 方法 目前 我已经尝试过 Author2018 Methods 这使 Author 2018 Methods 和 Author2018 Metho
  • ZF + 原则 2:重型模型类还是轻量级模型 + 服务层?

    我正在整合Zend框架 and 学说2 我正在发现服务层 现在我明白 我错了吗 我有两种可能的架构 A model 其中类包含域逻辑 即属性 getter setter 复杂方法 A 轻量化模型 其中类包含属性 getters setter
  • 如何将 Lua 与 .Net 集成

    要求是用户应该能够在文本框中添加 Lua 脚本 然后我需要检查用户是否添加了正确的 Lua 脚本 如果脚本正确 那么我需要运行该脚本 有人可以建议我一些代码吗 我尝试了以下操作 using Lua state new Lua state D
  • viewWillAppear 期间静态 UITableViewCell 更改未反映在显示中

    我正在使用一些静态UITableViewCell在情节提要中配置为显示一些设置信息 如果关闭其他设置之一 则应禁用其他一些单元格 为了使细胞进入适当的状态 在viewWillAppear我从 NSUserDefaults 读取设置 然后相应
  • 需要写入 Program File 文件夹的自更新 .NET 客户端应用程序

    如同 如果路径受保护 请请求 Windows Vista UAC 提升 https stackoverflow com questions 17533 request vista uac elevation if path is prote
  • 将列数据映射到值 (Oracle)

    我有一个 Oracle 数据库 并且有一个名为Car 我可以选择Mileage像这样的汽车 SELECT MILEAGE FROM CAR 这给了我 100 500 1000 etc 但是 我希望 1000 以上的值标记为High其余的为L
  • 如何在spaCy中强制使用某个标签?

    我正在使用 spaCy 3 0 0rc2 与定制模型 不幸的是 我的训练数据的连字符 较少 因此连字符经常被标记为NOUN 有什么方法可以强制某些tag or pos 以确保all the 令牌被标记为PUNCT 基本上我正在寻找一个像在这
  • 如何处理 AOSP 存储库同步上的curl clone.bundle 错误

    从 AOSP 下载 master 分支后 出现以下错误 curl 22 The requested URL returned error 404 Not Found Server does not provide clone bundle
  • 如何使用机器人框架在多个 Facebook 页面上使用同一个机器人

    我有几个 Facebook 页面 我想在每个页面上运行相同的机器人 我正在使用机器人框架 现在一页的一切都完美运行 如何关联多个页面 当您调用 Facebook Send API 时 您通过access token范围 您可以通过修改此访问
  • 递归调用函数对象

    如何从函数对象内部调用函数对象 看来我不能使用this 例子 class factorial public int operator int n if n 0 return 1 return n n 1 我该放在什么地方 include