Hallo,
wieso geht das nicht in C++?
1 | enum e_1 {Hund};
|
2 | enum e_2 {Hund};
|
3 |
|
4 | :
|
5 |
|
6 | e_1 var1 = e_1::Hund;
|
7 | e_2 var2 = e_2::Hund;
|
Schon bei der Enum Deklaration gibt der Compiler mir eine Fehlermeldung.
"'Hund': redefinition; previous definition was 'enumerator'"
Selbst untere Schreibweise sollte doch eindeutig auflösbar sein für den
Compiler.
1 | enum e_1 {Hund};
|
2 | enum e_2 {Hund};
|
3 |
|
4 | :
|
5 |
|
6 | e_1 var1 = Hund;
|
7 | e_2 var2 = Hund;
|
Ich sage doch mit der Deklaration prinzipiell dem Compiler, die
Enumeration (Aufzählungstyp) e_1 darf nur all die Werte in der
geschweiften Klammer annehmen und für die Enumeration e_2 sind eben nur
die Werte in der geschweiften Klammer hinter e_2 erlaubt.
Weiter unten sage ich dann die Variable var1 vom Typ e_1 hat den Wert
Hund.
e_1 var1 = Hund;
Wieso bringt mir VS C++ hier diese Fehlermeldung?