Maison > développement back-end > C++ > Pourquoi 'erreur : demande de membre '...' dans '...' qui n'est pas de type classe' se produit-elle en C et comment peut-elle être corrigée ?

Pourquoi 'erreur : demande de membre '...' dans '...' qui n'est pas de type classe' se produit-elle en C et comment peut-elle être corrigée ?

Mary-Kate Olsen
Libérer: 2024-12-05 06:22:11
original
823 Les gens l'ont consulté

Why Does

Résolution de "l'erreur : demande de membre '..." dans '..." qui est de type non-classe"

Lorsque vous rencontrez le message d'erreur "erreur : demande de membre '...' dans '...' qui est de type non-classe", en C , cela indique souvent un problème avec l'instanciation d'objet et la classe. accès des membres. Pour résoudre ce problème, examinons le code fourni et la cause première de l'erreur.

Le code définit une classe Foo avec deux constructeurs : un qui ne prend aucun argument et un qui prend un argument. L'intention est de créer des objets de Foo en utilisant les deux constructeurs. Cependant, une erreur se produit lors de la tentative de création d'un objet à l'aide du constructeur sans argument.

Après examen, le problème réside dans la ligne suivante :

Foo foo2();
Copier après la connexion

Le compilateur interprète cette ligne comme une déclaration de fonction avec le nom « foo2 » et le type de retour « Foo ». Cependant, le but recherché est de déclarer et d'instancier un objet de classe Foo en utilisant le constructeur par défaut. Pour résoudre ce problème, la syntaxe doit être modifiée comme suit :

Foo foo2;
Copier après la connexion

En supprimant simplement les parenthèses, le compilateur interprète désormais correctement la ligne comme une déclaration et une instanciation d'objet, en utilisant le constructeur par défaut pour initialiser l'objet foo2 .

Cette modification permet au code de se compiler et de s'exécuter comme prévu. Les objets peuvent désormais être créés à l'aide des deux constructeurs et les fonctions membres sont accessibles sans problème. Par conséquent, n'oubliez pas d'utiliser une syntaxe appropriée pour les déclarations d'objets et l'instanciation afin d'éviter ce type d'erreur en programmation C.

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