2017-06-27 3 views
-4

Ceci est hypothétique, mais j'ai une classe avec deux constructeurs surchargés - dont aucun n'est le constructeur par défaut. Si je devais appeler un constructeur de l'autre, serait-ce récursif? Exemple:Est-ce une fonction récursive considérée si j'ai une fonction surchargée qui appelle l'une de ses autres instances?

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

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

Bienvenue dans Stack Overflow. Veuillez prendre le temps de lire [The Tour] (http://stackoverflow.com/tour) et de consulter le contenu du [Centre d'aide] (http://stackoverflow.com/help/asking) quoi et comment vous pouvez demandez ici. –

+5

Plus facile de répondre si vous avez posté du code. – Mikhail

+2

Une fonction/méthode est récursive si elle s'appelle ... il semble que dans votre exemple, le constructeur de la copie appelle l'autre constructeur, mais aucun constructeur ne s'appelle lui-même. Donc, d'après votre description, la réponse semble être non. –

Répondre

4

Pas

récursivité est lorsqu'une fonction appelle se, pas une fonction surchargée du même nom avec des paramètres différents. Ce que vous décrivez n'est pas du tout de la récursivité. C'est delegating constructors, une nouvelle fonctionnalité introduite dans C++ 11. Et par définition: "Déléguer des constructeurs ne peut pas être récursif".