Maison >développement back-end >C++ >Pourquoi mon programme C renvoie-t-il une erreur « Constructeur sans arguments » ?

Pourquoi mon programme C renvoie-t-il une erreur « Constructeur sans arguments » ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-17 17:45:01296parcourir

Why Does My C   Program Throw a

Comprendre l'erreur « Constructeur sans arguments »

Lors de la compilation d'un programme C avec un constructeur sans arguments en utilisant g dans Cygwin, vous peut rencontrer le message d'erreur énigmatique : "erreur : demande du membre 'fonction1' dans 'myObj', qui est de type non-classe 'MyClass ()()'".

Cette erreur provient d'un malentendu concernant la syntaxe des déclarations de constructeur en C . Selon le standard du langage, la syntaxe ambiguë "MyClass myObj();" peut être interprété soit comme une définition d’objet, soit comme une déclaration de fonction. Cependant, la norme résout cette ambiguïté en donnant la priorité à l'interprétation de la déclaration de fonction.

Par conséquent, pour éviter cette erreur, vous devez déclarer explicitement votre objet sans parenthèses, comme suit :

MyClass myObj;

Cette déclaration précise que "myObj" est un objet de type "MyClass" et non une déclaration de fonction.

En résumé, l'erreur "Constructor with No Arguments" se produit lorsque le compilateur interprète mal la syntaxe de la déclaration d'objet et la résout en tant que déclaration de fonction. Pour éviter cette erreur, assurez-vous de déclarer vos objets sans parenthèses pour les constructeurs sans arguments.

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!

Déclaration:
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