Maison développement back-end C++ Erreur de syntaxe C++ : les identifiants dans les énumérations doivent être des constantes entières, comment la résoudre ?

Erreur de syntaxe C++ : les identifiants dans les énumérations doivent être des constantes entières, comment la résoudre ?

Aug 22, 2023 am 10:27 AM
枚举 解决。 erreur de syntaxe c++

Lors de la programmation en C++, vous rencontrerez parfois le message d'erreur de syntaxe "Les identifiants dans les énumérations doivent être des constantes entières". Cet article explique les causes de ce problème et les solutions possibles.

Tout d’abord, nous devons clarifier ce qu’est une énumération. En C++, une énumération est un type de données spécial utilisé pour définir une collection de constantes avec des valeurs discrètes. Chaque constante de l'énumération se voit attribuer une valeur entière, la première constante étant par défaut 0 et les constantes restantes incrémentées en séquence. Par exemple :

enum Weekday {Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday};
Copier après la connexion

Dans le code ci-dessus, Weekday est le nom de ce type d'énumération, lundi, mardi, etc. sont ses constantes membres, et des valeurs entières leur sont attribuées respectivement de 0 à 6.

Cependant, lorsque nous définissons par erreur la valeur d'une constante membre comme une constante non entière lors de la définition d'une énumération, comme une chaîne ou un nombre à virgule flottante, la syntaxe "les identifiants dans l'énumération doivent être des constantes entières" apparaîtra. Message d'erreur. Par exemple :

enum Fruit {Apple = 1, Banana = 2, Orange = "orange"}; //错误!
Copier après la connexion

Dans le code ci-dessus, Orange est défini comme une constante de chaîne, donc une erreur sera signalée lors de la compilation.

Alors, comment résoudre ce problème ? Une solution de contournement simple consiste à spécifier explicitement des valeurs entières pour toutes les constantes membres au lieu d'utiliser la méthode d'incrémentation par défaut. Par exemple :

enum Fruit {Apple = 1, Banana = 2, Orange = 3};
Copier après la connexion

Dans le code ci-dessus, nous spécifions manuellement une valeur entière pour chaque constante membre afin d'éviter les erreurs avec des constantes non entières.

Une autre solution consiste à utiliser une classe enum au lieu d'une énumération normale. Les classes d'énumération sont plus strictes que les énumérations ordinaires et ne permettent pas la conversion implicite de valeurs entières, évitant ainsi les erreurs ci-dessus. Par exemple :

enum class Fruit {Apple = 1, Banana = 2, Orange}; //Orange自动被分配整数值3
Copier après la connexion

Dans le code ci-dessus, nous avons utilisé la classe enum pour définir une énumération de type Fruit, et aucune valeur entière n'a été spécifiée pour Orange, mais la valeur entière 3 lui a quand même été attribuée car il s'agit de la définition du comportement de l'énumération. classe .

En bref, lorsque nous rencontrons l'erreur de syntaxe « les identifiants dans les énumérations doivent être des constantes entières » dans la programmation C++, nous pouvons résoudre ce problème en spécifiant explicitement la valeur entière de la constante membre ou en utilisant une classe d'énumération.

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 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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment résoudre l'erreur de syntaxe C++ : « expression primaire attendue avant », jeton » ? Comment résoudre l'erreur de syntaxe C++ : « expression primaire attendue avant », jeton » ? Aug 25, 2023 pm 07:30 PM

Comment résoudre l'erreur de syntaxe C++ : « expectedprimary-expressionbefore », « jeton » ? Présentation : Lors de l'écriture de code C++, nous rencontrons parfois diverses erreurs. L'un d'eux est "expression primaire attendue avant", "jeton" (expression primaire manquante avant la virgule). Cette erreur est généralement détectée lors du processus de compilation, elle nous signale qu'un

Comment résoudre l'erreur de syntaxe C++ : « expression primaire attendue avant le jeton « . » ? Comment résoudre l'erreur de syntaxe C++ : « expression primaire attendue avant le jeton « . » ? Aug 26, 2023 pm 07:43 PM

Comment résoudre l'erreur de syntaxe C++ : 'expectedprimary-expressionbefore'.'token' ? Lors de l’écriture de programmes en C++, nous rencontrons parfois diverses erreurs de syntaxe. L’une des erreurs courantes est « expectedprimary-expressionbefore ». « token ». Lorsque nous utilisons une syntaxe incorrecte pour accéder aux membres d'une classe dans notre code, le compilateur signalera cette erreur.

Comment résoudre l'erreur de syntaxe C++ : « initialiseur attendu avant le jeton « ( » ? Comment résoudre l'erreur de syntaxe C++ : « initialiseur attendu avant le jeton « ( » ? Aug 26, 2023 pm 09:37 PM

Comment résoudre l'erreur de syntaxe C++ : 'expectedinitializerbefore'('token' ? Dans la programmation C++, vous rencontrez souvent diverses erreurs de compilation. L'une des erreurs courantes est 'expectedinitializerbefore'('token'. Dans cet article, nous avons la cause de cette erreur sera discuté en détail et une solution sera fournie. Tout d'abord, regardons un exemple simple : #include&l.

Erreur de compilation Golang : « undéfini : os.Environ » Comment le résoudre ? Erreur de compilation Golang : « undéfini : os.Environ » Comment le résoudre ? Jun 24, 2023 pm 03:26 PM

Golang est un langage de programmation de plus en plus populaire de nos jours. Il est inévitable que vous rencontriez des erreurs de compilation lors de son utilisation. Parmi eux, une erreur courante est : "undefined:os.Environ". Cet article explique la cause de cette erreur et comment la résoudre. Tout d’abord, comprenons le rôle de la fonction os.Environ. La fonction os.Environ est utilisée pour obtenir les types de tranche de toutes les variables d'environnement sous le système actuel et renvoyer un résultat de tranche de chaîne sous la forme de paires clé-valeur.

Comment résoudre l'erreur de syntaxe C++ : « expression primaire attendue avant le jeton « * » » ? Comment résoudre l'erreur de syntaxe C++ : « expression primaire attendue avant le jeton « * » » ? Aug 25, 2023 pm 07:16 PM

Comment résoudre les erreurs de syntaxe C++ : 'expectedprimary-expressionbefore'*'token' Dans le processus d'apprentissage de la programmation C++, nous rencontrons souvent diverses erreurs de syntaxe. L'une des erreurs courantes est 'expectedprimary-expressionbefore'*'token'. Cette erreur se produit généralement lors de l'utilisation de pointeurs, principalement parce que nous utilisons une mauvaise syntaxe quelque part ou que nous oublions

Que sont les énumérations (enums) dans PHP 8.1? Que sont les énumérations (enums) dans PHP 8.1? Apr 03, 2025 am 12:05 AM

La fonction d'énumération dans PHP8.1 améliore la clarté et la sécurité du type du code en définissant les constantes nommées. 1) Les énumérations peuvent être des entiers, des chaînes ou des objets, améliorant la lisibilité du code et la sécurité des types. 2) L'énumération est basée sur la classe et prend en charge des fonctionnalités orientées objet telles que la traversée et la réflexion. 3) L'énumération peut être utilisée pour la comparaison et l'attribution pour assurer la sécurité du type. 4) L'énumération prend en charge l'ajout de méthodes pour implémenter une logique complexe. 5) La vérification stricte et la gestion des erreurs peuvent éviter les erreurs courantes. 6) L'énumération réduit la valeur magique et améliore la maintenabilité, mais prêtez attention à l'optimisation des performances.

Comment résoudre l'erreur de syntaxe C++ : « attendu ')' avant le jeton « & » ? Comment résoudre l'erreur de syntaxe C++ : « attendu ')' avant le jeton « & » ? Aug 26, 2023 pm 08:13 PM

Comment résoudre l'erreur de syntaxe C++ : 'attendu')'avant'&'jeton' ? Dans le processus de programmation C++, diverses erreurs de syntaxe sont souvent rencontrées. L'une des erreurs courantes est : "attendu") "avant" et "jeton". Cette erreur se produit généralement dans la liste des paramètres d'une fonction ou d'une méthode, indiquant que le compilateur ne peut pas comprendre la parenthèse droite manquante avant une variable ou un type. Ci-dessous, je vais détailler comment résoudre cette erreur et fournir du code

Comment résoudre l'erreur de syntaxe C++ : « ID non qualifié attendu avant le jeton «  Comment résoudre l'erreur de syntaxe C++ : « ID non qualifié attendu avant le jeton «  Aug 26, 2023 pm 10:46 PM

Comment résoudre l'erreur de syntaxe C++ : 'expectedunqualified-idbefore'<'token' ? Lors du développement du C++, nous rencontrons souvent diverses erreurs. L'une des erreurs courantes est "expectedunqualified-idbefore" < "token". Cette erreur signifie généralement qu'un identifiant manque quelque part, mais que le compilateur a trouvé le symbole '<'. Ce genre d'erreur

See all articles