【问题标题】:Is it a considered a recursive function if I have an overloaded function that calls one of its other instances? [closed]如果我有一个调用其其他实例之一的重载函数,它是否被视为递归函数? [关闭]
【发布时间】:2017-06-27 03:54:31
【问题描述】:

这是假设的,但我有一个包含两个重载构造函数的类——它们都不是默认构造函数。如果我要从另一个构造函数中调用一个构造函数,它会是递归的吗?示例:

class Example
{
     Example(const int integer)
     {
          //Constructor Code Here
     }

     Example(argument)
     {
          Example object(68);
          //Rest of constructor code
     }
};

【问题讨论】:

  • 欢迎来到 Stack Overflow。请花时间阅读The Tour 并参考Help Center 中的材料,您可以在这里问什么以及如何问。
  • 如果您发布了一些代码,则更容易回答。
  • 如果函数/方法调用自身,则它是递归的......听起来在您的示例中,复制构造函数调用另一个构造函数,但没有构造函数调用自身。所以从你的描述来看,答案似乎是否定的。
  • @jeremy 好吧,可能存在间接级别。
  • 是的,我考虑过包含它,但我认为它只会混淆问题:)

标签: c++ class recursion constructor function-calls


【解决方案1】:

没有

递归是函数调用自身,而不是同名但参数不同的重载函数。您所描述的根本不是递归。它是delegating constructors,C++11 中引入的一个新特性。根据定义:“委托构造函数不能递归”。

【讨论】:

    猜你喜欢
    • 2012-09-10
    • 1970-01-01
    • 2016-08-12
    • 1970-01-01
    • 2016-01-19
    • 2021-04-22
    • 1970-01-01
    • 2018-02-07
    • 1970-01-01
    相关资源
    最近更新 更多