Maison > développement back-end > C++ > le corps du texte

Pourquoi MyClass myObj(); conduire à une ambiguïté en C ?

Susan Sarandon
Libérer: 2024-11-14 18:05:02
original
801 Les gens l'ont consulté

Why does MyClass myObj(); lead to ambiguity in C  ?

Ambiguïté dans la déclaration de constructeur vide

Lorsqu'il rencontre la déclaration MyClass myObj();, le compilateur évalue la possibilité soit d'une définition d'objet avec un initialiseur vide ou une déclaration de fonction. Cependant, selon le standard du langage C, cette ambiguïté est systématiquement résolue en faveur d'une déclaration de fonction.

L'utilisation de parenthèses vides dans une déclaration de constructeur n'est autorisée que dans certains contextes, comme dans une nouvelle expression ou lors de la construction d'un objet temporaire initialisé par une valeur.

Dans le cas décrit dans la question d'origine, la syntaxe correcte pour déclarer un objet sans aucun argument est MyClass myObj;, car les parenthèses ont été incorrectement associées à la déclaration du constructeur et pas comme un initialiseur vide. Cela peut potentiellement conduire à des erreurs d'analyse dans certains compilateurs.

Il est important de noter que ce comportement est dicté par la norme du langage C et non par une limitation du compilateur spécifique utilisé. C'est donc une bonne pratique de suivre la syntaxe correcte pour éviter toute confusion et garantir la compatibilité avec différents environnements de compilation.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal