En C , les constructeurs sont utilisés pour initialiser les objets d'une classe. Cependant, dans l'extrait de code fourni, le constructeur n'est pas appelé, ce qui entraîne un comportement inattendu.
La ligne problématique :
Class object();
n'appelle pas réellement le constructeur de la classe Class. Au lieu de cela, il déclare une fonction renvoyant un objet Class. Pour appeler correctement le constructeur et créer un objet, un point-virgule (;) doit être ajouté à la ligne :
Class object;
L'extrait de code initial met en évidence un problème connu comme "l'analyse la plus frustrante" en C . Lorsqu'il rencontre la ligne :
Class object();
l'analyseur C l'interprète de manière ambiguë comme une déclaration de fonction ou un appel de fonction avec une liste d'arguments vide. Cette ambiguïté entraîne souvent de la confusion et des résultats inattendus.
Pour invoquer le constructeur et créer un objet, le code doit être mis à jour comme :
#includeusing namespace std; class Class { Class() { cout Exécutez le code corrigé pour observer le résultat attendu :
default constructor called destructor called
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3