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();
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;
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!