Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Mat Senior JLI'ler

Alter: 36 Anmeldedatum: 17.09.2005 Beiträge: 205 Wohnort: Koblenz Medaillen: Keine
|
Verfasst am: 15.03.2007, 16:47 Titel: enum-Frage |
|
|
Hey,
sicherlich wisst ihr, dass folgender Code einen Compiler-Error erzeugt:
CPP: | enum TriggerType { test, test2 };
enum ActionType { test, test2 };
|
=> test wird in zwei verschiedenen enumerationen verwendet.
Nun würde ich dazutendieren, dass ich für die Trigger und Action Klasse (vor jeder dieser Klasse soll nämlich eine Enumeration stehen, die anders benannt ist, jedoch gleiche Inhalte besitzt) jeweils einen eigenen Namespace öffne, um diesem Problem auszuweichen.
Gibt es da eine elegantere Lösung ?
PS: Warum ist oben stehender Code eigendlich als falsch definiert, ich denke es kommt häufig vor, dass man genau das haben möchte, was bei mir gerade der Fall ist.
Danke  _________________ - - - - - - - - - - - - - - - - - - - -
-> http://www.sea-productions.de
-> http://www.krawall.de
- - - - - - - - - - - - - - - - - - - - |
|
Nach oben |
|
 |
Jonathan_Klein Living Legend

Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 15.03.2007, 16:57 Titel: |
|
|
Hm, ich glaube das ist einfach so, weil du quasi 2 Konstante Variablen hast, die zwar einen unterschiedlichen Typ, aber den gleichen Namen haben.
Ich würde dass dann so machen:
CPP: | enum TriggerType { TT_test, TT_test2 };
enum ActionType { AT_test, AT_test2 };
//das hier geht ja auch nicht
const int Zahl=2;
const float Zahl=0.5f;
|
_________________ https://jonathank.de/games/ |
|
Nach oben |
|
 |
Mat Senior JLI'ler

Alter: 36 Anmeldedatum: 17.09.2005 Beiträge: 205 Wohnort: Koblenz Medaillen: Keine
|
Verfasst am: 15.03.2007, 17:19 Titel: |
|
|
Stimmt, dem "Werten" also den Namen innerhalb einer Enumeration wird ja eine Zahl zugewiesen (wie der Name schon sagt, durchgezählt ) - als wären es also Konstanten.
Ja, bisher hatte ich auch immer einen Präfix genommen, wobei ich da eher die NameSpace-Variante bevorzuge -> ist irgendwie eine klarere Linie.
Thx. _________________ - - - - - - - - - - - - - - - - - - - -
-> http://www.sea-productions.de
-> http://www.krawall.de
- - - - - - - - - - - - - - - - - - - - |
|
Nach oben |
|
 |
Fallen JLI MVP


Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 15.03.2007, 17:23 Titel: |
|
|
CPP: | struct TriggerType
{
enum Enumeration { test, test2 };
};
struct ActionType
{
enum Enumeration { test, test2 };
}; |
So würdes gleich noch gut verpackt bestehen. _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
 |
Mat Senior JLI'ler

Alter: 36 Anmeldedatum: 17.09.2005 Beiträge: 205 Wohnort: Koblenz Medaillen: Keine
|
Verfasst am: 15.03.2007, 19:06 Titel: |
|
|
Cool, wusste garnicht, dass das funktioniert ...
Klappt das auch mit Klassen ? -> Muss ich mal probieren.
Dann brauch ich auch keinen speziellen Name-Space mehr! _________________ - - - - - - - - - - - - - - - - - - - -
-> http://www.sea-productions.de
-> http://www.krawall.de
- - - - - - - - - - - - - - - - - - - - |
|
Nach oben |
|
 |
GreveN JLI Master

Alter: 38 Anmeldedatum: 08.01.2004 Beiträge: 901 Wohnort: Sachsen - Dresden Medaillen: Keine
|
Verfasst am: 15.03.2007, 19:11 Titel: |
|
|
Argh, klar klappt das auch mit Klassen, Strukturen sind sogesehen nichts anderes als "public"-Klassen. |
|
Nach oben |
|
 |
Mat Senior JLI'ler

Alter: 36 Anmeldedatum: 17.09.2005 Beiträge: 205 Wohnort: Koblenz Medaillen: Keine
|
Verfasst am: 15.03.2007, 19:17 Titel: |
|
|
Das war mir eigendlich schon klar
Ich wollte nur meiner Verplüfftheit Ausdruck verleihen  _________________ - - - - - - - - - - - - - - - - - - - -
-> http://www.sea-productions.de
-> http://www.krawall.de
- - - - - - - - - - - - - - - - - - - - |
|
Nach oben |
|
 |
|