Heim  >  Artikel  >  Backend-Entwicklung  >  C++-Syntaxfehler: Aufzählungsmitglieder müssen eindeutig sein. Wie soll ich das ändern?

C++-Syntaxfehler: Aufzählungsmitglieder müssen eindeutig sein. Wie soll ich das ändern?

王林
王林Original
2023-08-21 23:58:501513Durchsuche

Wenn wir C++-Programme schreiben, stoßen wir manchmal auf die folgende Fehlermeldung:

„C++-Syntaxfehler: Aufzählungsmitglieder müssen eindeutig sein“

Dies liegt daran, dass im Aufzählungstyp der Name des Aufzählungsmitglieds eindeutig sein muss und dies nicht sein kann wiederholt.

Also, wie kann man diesen Fehler beheben? Im Folgenden werden mehrere Lösungen aufgeführt.

Methode 1: Namen von Aufzählungsmitgliedern manuell ändern

Die einfachste Methode besteht darin, die Namen von Aufzählungsmitgliedern manuell zu ändern, um sicherzustellen, dass sie eindeutig sind. Ändern Sie beispielsweise doppelte Mitgliedsnamen in andere Namen.

Wenn wir beispielsweise einen Aufzählungstyp definieren, der zwei Mitglieder mit demselben Mitgliedsnamen enthält, wie unten gezeigt:

enum Fruit
{
    Banana,
    Apple,
    Strawberry,
    Apple
};

Dann meldet der Compiler „C++-Syntaxfehler: Aufzählungsmitglieder müssen eindeutig sein von“. Wir können einen der Mitgliedsnamen wie folgt in einen anderen Namen ändern:

enum Fruit
{
    Banana,
    Apple,
    Strawberry,
    Orange
};

Dadurch wird dieser Fehler behoben.

Methode 2: Verwenden Sie typedef, um einen neuen Aufzählungstyp zu definieren

Wenn wir den ursprünglichen Aufzählungstyp nicht ändern möchten, können wir auch typedef verwenden, um einen neuen Aufzählungstyp zu definieren und den ursprünglichen Aufzählungstyp umzubenennen.

Zum Beispiel können wir den oben genannten Fruit-Aufzählungstyp in FruitType umbenennen:

typedef enum
{
    Banana,
    Apple,
    Strawberry,
    Apple
} FruitType;

Auf diese Weise kann FruitType im Programm verwendet werden, um den ursprünglichen Fruit-Aufzählungstyp zu ersetzen.

Methode 3: Aufzählungsklassen verwenden

C++11 führt eine neue Funktion der Aufzählungsklasse (Aufzählungsklasse) ein, die den Namensraum von Aufzählungsmitgliedern beim Definieren von Aufzählungstypen einschränken kann, um Namenskonflikte zu vermeiden.

Zum Beispiel können wir die Enum-Klasse verwenden, um einen Aufzählungstyp namens Fruit zu definieren und den Namensraum seiner Mitglieder auf Fruit zu beschränken:

enum class Fruit
{
    Banana,
    Apple,
    Strawberry,
    Apple
};

Wenn wir zu diesem Zeitpunkt zwei Mitglieder mit demselben Namen definieren, meldet der Compiler einen Fehler , statt einer Warnung.

Zusammenfassung:

In C++ müssen Aufzählungsmitglieder eindeutig sein und können nicht wiederholt werden. Wenn der Compiler „C++-Syntaxfehler: Aufzählungsmitglieder müssen eindeutig sein“ meldet, können Sie die Namen der Aufzählungsmitglieder manuell ändern, mit typedef einen neuen Aufzählungstyp definieren oder eine Aufzählungsklasse verwenden, um das Problem zu lösen. Die Methode zur Verwendung von Aufzählungsklassen ist eine neue Funktion, die in C++ 11 eingeführt wurde und das Problem der Namenskonflikte von Aufzählungsmitgliedern effektiv vermeiden kann.

Das obige ist der detaillierte Inhalt vonC++-Syntaxfehler: Aufzählungsmitglieder müssen eindeutig sein. Wie soll ich das ändern?. 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