Maison >développement back-end >C++ >Syntaxe du constructeur C : pourquoi « Foo foo2(); » provoque-t-il une erreur ?

Syntaxe du constructeur C : pourquoi « Foo foo2(); » provoque-t-il une erreur ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-30 14:13:16340parcourir

C   Constructor Syntax: Why Does `Foo foo2();` Cause an Error?

Erreur : demande de membre dans un type non-classe 'Type non-classe'

Lors de la déclaration d'objets en C, il est crucial d'utiliser le syntaxe correcte pour les deux constructeurs. Dans le code fourni, une tentative de création d'un objet à l'aide du constructeur sans argument entraîne une erreur :

Foo foo2();

Cette syntaxe est incorrecte car elle ressemble à une déclaration de fonction, ce qui amène le compilateur à l'interpréter comme telle. . La syntaxe correcte pour la déclaration d'objet à l'aide du constructeur sans argument est :

Foo foo2;

En supprimant les parenthèses, le compilateur reconnaîtra correctement foo2 comme un objet de la classe Foo.

Alternativement, si vous souhaitez utiliser des parenthèses pour plus de clarté, assurez-vous que les arguments du constructeur sont inclus :

Foo foo2(1); // Explicitly pass the default argument of 1 to the no-argument constructor

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