Heim  >  Artikel  >  Backend-Entwicklung  >  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?

WBOY
WBOYOriginal
2023-08-22 10:27:171059Durchsuche

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

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"}; //错误!

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

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

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!

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