was bedeutet: enum waehrung {DM,ATS};
-
hi
habe mal wieder ne kleine frage was bewirkt das hier:
enum waerung {DM,ATS};
leider hab ich ein sehr schlechtes c++ buch was eigentlich für anfänger sein soll aber ständig wird so was wie oben geschrieben, hingeklatscht und nicht dazu gesagt was es bedeutet bzw. was es bewirkt.
mfg david
-
Das bedeutet das du jetzt sowas schreiben kannst:
waehrung a; a=DM; waehrung b=ATS; a=b; //...
Du hast prinzipiell einen (primitiven) neuen Datentyp eingeführt...
-
also versteh ich das so richtig das ich damit praktisch ähnlich wie bei einer bool variable die nur true oder false annehmen kann.
ich einen datentyp gemacht hab der nur DM oder ATS annehmen oder gegeben falls noch mehr wenn ich es vorher so definiert habe also
enum waehrung {DM,ATS,EURO};
zum beispiel hab ich das so richtig verstanden?
was heißt enum übersetzt oder von was ist das wort abgeleitet?
mfg david
-
hi,
kauf dir echt mal ein gescheites Buch UND solange, bis du eins hast decke dich mit online Tutorials ein!
z.B.:
http://tutorial.schornboeck.net/enum.htm
http://www.josuttis.com/cppbuch/idx.html
http://ladedu.com/cpp/...
Gruß eXitus
-
werd mir die links gleich mal anschauen ... ich hoffe mal man kann die auch downloaden das ich mir die auch offline anschauen kann.
mfg david
-
Trantüte schrieb:
also versteh ich das so richtig das ich damit praktisch ähnlich wie bei einer bool variable die nur true oder false annehmen kann.
ich einen datentyp gemacht hab der nur DM oder ATS annehmen oder gegeben falls noch mehr wenn ich es vorher so definiert habe
Yep, so ungefähr kannst du dir das vorstellen.
Ich glaube Kingruedi wars, der sogar genau das mit bool hier mal gepostet hat. Da es in C vor C99 kein bool gab, kann man sowas einfach selbst definieren. Das sieht dann ungefähr so ausenum bool { false = 0, true = 1 };
Trantüte schrieb:
was heißt enum übersetzt oder von was ist das wort abgeleitet?
enum kommt wohl von enum(eration), dass kannst du ins Deutsche mit Aufzählung übersetzen.
-
Enum sind so genannte zusammengesetzte Datentypen. Die Elemente werden intern auf int abgebildet.
enum farben {rot, gelb, blau}; farben farbton; farbton = rot; if(farbton == rot) cout << farbton << endl; if(farbton == 0) cout << farbton << endl; /*Was ist einfacher zu verstehen? farbton == 0 oder farbton == rot ?*/
Damit mußt du nicht mit Zahlen jonglieren sondern kannst zb. deine Vergleiche mit 'Wörtern' machen, das ist überschaubarer und besser verständlich.
Im Endeffekt geht es wie so oft um die Zusammenführung zusammenhängender logischer Daten, ähnlich wie bei Vektoren(vector), Strukturen(struct) usw.PS(OT): Ich weiß nicht wie sehr dich C++ Programmierung interessiert, doch ein gutes Buch ist unerlässlich. Zuerst mal die Tuts so durchschauen, das hat den Vorteil das du leicht verdaubare Kost vorgesetzt bekommst. Was auch Sinn macht weil man dann schneller Ergebnisse bekommt ohne erst nur Theorie zu pauken und nichts ( <- übertrieben) umsetzen zu können. Dann die Kenntnisse vertiefen mit einem guten Buch.
Ich mache es auch so. Die Tuts sind wirklich gut und erleichtern jemanden den Einstieg durch Motivation.Muss mal gesagt werden, aber das ist echt hilfreich und man kann schon sehr dankbar sein dafür.
-
recht herzlichen dank eure beiträge haben mir sehr weiter geholfen.
mfg david
-
was heißt enum übersetzt oder von was ist das wort abgeleitet?
enum steht für Enumeration, also Aufzählung.
-
Dazu hätte ich auch mal eine Frage :
in der SDL_keysym.h gibt es ein Enum , welches so aufgebaut ist :
typedef enum{ SDLK_UNKNOWN = 0, SDLK_FIRST = 0, SDLK_BACKSPACE = 8, SDLK_TAB = 9, SDLK_CLEAR = 12, SDLK_RETURN = 13, SDLK_PAUSE = 19, } SDLKey
Wieso werden den Namen werte zugewiesen ? könnte man sie nicht gleich als Konstante schreiben ?
#define SDLK_UNKNOWN 0 usw ...
-
sbrog schrieb:
Dazu hätte ich auch mal eine Frage :
in der SDL_keysym.h gibt es ein Enum , welches so aufgebaut ist :
typedef enum{ SDLK_UNKNOWN = 0, SDLK_FIRST = 0, SDLK_BACKSPACE = 8, SDLK_TAB = 9, SDLK_CLEAR = 12, SDLK_RETURN = 13, SDLK_PAUSE = 19, } SDLKey
Wieso werden den Namen werte zugewiesen ? könnte man sie nicht gleich als Konstante schreiben ?
#define SDLK_UNKNOWN 0 usw ...
Könnte man, aber dann hätte der Autor den Sinn eines enum's nicht verstanden.
Bei Enums sind nur die definierten Konstanten zulässig und bei defines kann man alles mögliche was nur irgendwie gültig ist nehmen.
-
#define definiert keine Konstanten sondern Makros. Konstanten kannst du mit const definieren.