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
Libérer: 2024-11-30 14:13:16
original
334 Les gens l'ont consulté

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();
Copier après la connexion

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;
Copier après la connexion

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
Copier après la connexion

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