Heim Backend-Entwicklung C++ C++-Syntaxfehler: Bezeichner in Aufzählungen müssen ganzzahlige Konstanten sein, wie lässt sich das Problem lösen?

C++-Syntaxfehler: Bezeichner in Aufzählungen müssen ganzzahlige Konstanten sein, wie lässt sich das Problem lösen?

Aug 22, 2023 am 10:27 AM
枚举 解决。 c++语法错误

Beim Programmieren in C++ wird manchmal die Syntaxfehlermeldung „Bezeichner in Aufzählungen müssen Ganzzahlkonstanten sein“ angezeigt. In diesem Artikel werden die Ursachen dieses Problems und mögliche Lösungen erläutert.

Zuerst müssen wir klären, was eine Aufzählung ist. In C++ ist eine Enumeration ein spezieller Datentyp, der zum Definieren einer Sammlung von Konstanten mit diskreten Werten verwendet wird. Jeder Konstante in der Aufzählung wird ein ganzzahliger Wert zugewiesen, wobei die erste Konstante standardmäßig 0 ist und die übrigen Konstanten der Reihe nach inkrementiert werden. Zum Beispiel:

enum Weekday {Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday};
Nach dem Login kopieren

Im obigen Code ist Weekday der Name dieses Aufzählungstyps, Monday, Tuesday usw. sind seine Mitgliedskonstanten und ihnen werden jeweils ganzzahlige Werte von 0 bis 6 zugewiesen.

Wenn wir jedoch beim Definieren einer Aufzählung, z. B. einer Zeichenfolge oder einer Gleitkommazahl, versehentlich den Wert einer Mitgliedskonstante als nicht ganzzahlige Konstante definieren, wird die Syntax „Bezeichner in der Aufzählung müssen ganzzahlige Konstanten sein“ angezeigt. Fehlermeldung. Beispiel:

enum Fruit {Apple = 1, Banana = 2, Orange = "orange"}; //错误!
Nach dem Login kopieren

Im obigen Code ist Orange als String-Konstante definiert, sodass beim Kompilieren ein Fehler gemeldet wird.

Also, wie kann man dieses Problem lösen? Eine einfache Problemumgehung besteht darin, für alle Mitgliedskonstanten explizit ganzzahlige Werte anzugeben, anstatt die Standardinkrementierungsmethode zu verwenden. Zum Beispiel:

enum Fruit {Apple = 1, Banana = 2, Orange = 3};
Nach dem Login kopieren

Im obigen Code geben wir manuell einen ganzzahligen Wert für jede Mitgliedskonstante an, um Fehler mit nicht ganzzahligen Konstanten zu vermeiden.

Eine andere Lösung besteht darin, eine Enum-Klasse anstelle einer normalen Enum zu verwenden. Aufzählungsklassen sind strenger als gewöhnliche Aufzählungen und erlauben keine implizite Konvertierung ganzzahliger Werte, wodurch die oben genannten Fehler vermieden werden. Zum Beispiel:

enum class Fruit {Apple = 1, Banana = 2, Orange}; //Orange自动被分配整数值3
Nach dem Login kopieren

Im obigen Code haben wir die Enum-Klasse verwendet, um eine Aufzählung vom Typ Fruit zu definieren, und für Orange wurde kein ganzzahliger Wert angegeben, ihm wurde aber dennoch der ganzzahlige Wert 3 zugewiesen, da dies die Verhaltensdefinition der Aufzählung ist Klasse .

Kurz gesagt: Wenn in der C++-Programmierung der Syntaxfehler „Bezeichner in Aufzählungen müssen ganzzahlige Konstanten sein“ auftritt, können wir dieses Problem lösen, indem wir explizit den ganzzahligen Wert der Mitgliedskonstante angeben oder eine Aufzählungsklasse verwenden.

Das obige ist der detaillierte Inhalt vonC++-Syntaxfehler: Bezeichner in Aufzählungen müssen ganzzahlige Konstanten sein, wie lässt sich das Problem lösen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie behebt man den C++-Syntaxfehler: „Erwarteter Primärausdruck vor „,' Token'? Wie behebt man den C++-Syntaxfehler: „Erwarteter Primärausdruck vor „,' Token'? Aug 25, 2023 pm 07:30 PM

Wie behebt man den C++-Syntaxfehler: „expectedprimary-expressionbefore“, „token“? Übersicht: Beim Schreiben von C++-Code treten manchmal verschiedene Fehler auf. Einer davon ist „expectedprimary-expressionbefore‘,‘token“ (fehlender primärer Ausdruck vor dem Komma). Dieser Fehler wird normalerweise während des Kompilierungsprozesses erkannt und fordert uns auf, a

Wie behebt man den C++-Syntaxfehler: „Erwarteter Primärausdruck vor „.' Wie behebt man den C++-Syntaxfehler: „Erwarteter Primärausdruck vor „.' Aug 26, 2023 pm 07:43 PM

Wie behebt man den C++-Syntaxfehler: 'expectedprimary-expressionbefore'.'token'? Beim Schreiben von Programmen in C++ stoßen wir manchmal auf verschiedene Syntaxfehler. Einer der häufigsten Fehler ist „expectedprimary-expressionbefore“.‘token‘. Wenn wir in unserem Code eine falsche Syntax verwenden, um auf Mitglieder einer Klasse zuzugreifen, meldet der Compiler diesen Fehler.

Wie behebt man den C++-Syntaxfehler: „Erwarteter Initialisierer vor „('-Token'? Wie behebt man den C++-Syntaxfehler: „Erwarteter Initialisierer vor „('-Token'? Aug 26, 2023 pm 09:37 PM

So lösen Sie den C++-Syntaxfehler: 'expectedinitializerbefore'('token'? Bei der C++-Programmierung treten häufig verschiedene Kompilierungsfehler auf. Einer der häufigsten Fehler ist 'expectedinitializerbefore'('token'. In diesem Artikel gehen wir auf die Ursache dieses Fehlers ein wird im Detail besprochen und eine Lösung bereitgestellt. Schauen wir uns zunächst ein einfaches Beispiel an: #include&l.

Golang-Kompilierungsfehler: „undefiniert: os.Environ' Wie kann man ihn lösen? Golang-Kompilierungsfehler: „undefiniert: os.Environ' Wie kann man ihn lösen? Jun 24, 2023 pm 03:26 PM

Golang ist heutzutage eine immer beliebter werdende Programmiersprache. Es ist unvermeidlich, dass bei der Verwendung einige Kompilierungsfehler auftreten. Unter diesen ist ein häufiger Fehler: „undefiniert:os.Environ“. In diesem Artikel werden die Ursache dieses Fehlers und seine Behebung erläutert. Lassen Sie uns zunächst die Rolle der os.Environ-Funktion verstehen. Die Funktion os.Environ wird verwendet, um die Slice-Typen aller Umgebungsvariablen unter dem aktuellen System abzurufen und eine Zeichenfolgen-Slice-Resu in Form von Schlüssel-Wert-Paaren zurückzugeben.

Wie behebt man den C++-Syntaxfehler: „Erwarteter Primärausdruck vor ‚*'-Token'? Wie behebt man den C++-Syntaxfehler: „Erwarteter Primärausdruck vor ‚*'-Token'? Aug 25, 2023 pm 07:16 PM

So lösen Sie C++-Syntaxfehler: 'expectedprimary-expressionbefore'*'token' Beim Erlernen der C++-Programmierung stoßen wir häufig auf verschiedene Syntaxfehler. Einer der häufigsten Fehler ist 'expectedprimary-expressionbefore'*'token'. Dieser Fehler tritt normalerweise bei der Verwendung von Zeigern auf, hauptsächlich weil wir irgendwo eine falsche Syntax verwenden oder vergessen

Was sind Aufzählungen (Enums) in PHP 8.1? Was sind Aufzählungen (Enums) in PHP 8.1? Apr 03, 2025 am 12:05 AM

Die Aufzählungsfunktion in Php8.1 verbessert die Klarheit und Type des Codes, indem benannte Konstanten definiert werden. 1) Aufzählungen können Ganzzahlen, Zeichenfolgen oder Objekte sein, die die Lesbarkeit der Code und die Type der Type verbessern. 2) Die Aufzählung basiert auf der Klasse und unterstützt objektorientierte Merkmale wie Traversal und Reflexion. 3) Die Aufzählung kann zum Vergleich und zur Zuordnung verwendet werden, um die Sicherheit der Typ zu gewährleisten. 4) Aufzählung unterstützt das Hinzufügen von Methoden zur Implementierung einer komplexen Logik. 5) Strenge Typ Überprüfung und Fehlerbehandlung können häufig auftretende Fehler vermeiden. 6) Die Aufzählung verringert den magischen Wert und verbessert die Wartbarkeit, achten Sie jedoch auf die Leistungsoptimierung.

Wie behebt man den C++-Syntaxfehler: „unqualifizierte ID vor ‚ Wie behebt man den C++-Syntaxfehler: „unqualifizierte ID vor ‚ Aug 26, 2023 pm 10:46 PM

Wie behebt man den C++-Syntaxfehler: „expectedunqualified-idbefore“ < „token“? Bei der Entwicklung von C++ stoßen wir häufig auf verschiedene Fehler. Einer der häufigsten Fehler ist „expectedunqualified-idbefore“<‘token‘. Dieser Fehler bedeutet normalerweise, dass irgendwo ein Bezeichner fehlt, der Compiler jedoch das Symbol „<“ gefunden hat. So ein Fehler

Wie behebt man den C++-Syntaxfehler: 'erwartet ')' vor '&' Token'? Wie behebt man den C++-Syntaxfehler: 'erwartet ')' vor '&' Token'? Aug 26, 2023 pm 08:13 PM

Wie behebt man den C++-Syntaxfehler: 'erwartet')'before'&'token'? Bei der C++-Programmierung treten häufig verschiedene Syntaxfehler auf. Einer der häufigsten Fehler ist: „expected‘)‘before‘&‘token“. Dieser Fehler tritt normalerweise in der Parameterliste einer Funktion oder Methode auf und weist darauf hin, dass der Compiler die fehlende rechte Klammer vor einer Variablen oder einem Typ nicht verstehen kann. Im Folgenden werde ich detailliert beschreiben, wie dieser Fehler behoben werden kann, und Code bereitstellen

See all articles