Article View: de.comp.lang.c++
Article #746Re: enums
From: Karl-Heinz Krause
Date: Tue, 07 Nov 1995 05:57
Date: Tue, 07 Nov 1995 05:57
33 lines
1931 bytes
1931 bytes
Am 6. Nov. 1995 schrieb Torsten Vogt (vogt@pi1.uni-mannheim.de):
> Hi, an alle, die ausser mir was zu diesem Thema gepostet haben. Wir
> koennen uns natuerlich noch monatelang darueber unterhalten, wie man
> am besten enums organisiert, die Farben repraesentieren, um moeglichst
> wartungsfreundliche Programme zu schreiben. Weiterhin denke ich, dass
> alle Postings, die sich damit beschaeftigen eine sinnvolle Loesung
> angeboten haben. Aber darum ging es weder in der Frage, noch in meiner
> Antwort. Es ging 'drum, ob enums in jedem Fall aequivalent zu ints sind.
> Offenbar scheinen dies einige Compiler unterschiedlich streng zu handhaben.
> Benni - das war der urspruengliche Fragesteller - stellt diese Frage, dann
> auch noch mal konkreter in seinem zweiten Posting.
> Also: Was sagt der Sprachstandard?
enums sind in C++ (anders als in C) *nicht* äquivalent zu ints. enums
werden zwar implizit nach int konvertiert, nicht aber umgekehrt. Daraus
folgt, daß zwar der folgende Ausdruck "a + b" erlaubt ist, wenn a und b
enums sind (da a und b nach int konvertiert werden); da das Ergebnis
dann aber von Typ int ist, ist die Zuweisung "a = a+b" nicht erlaubt.
Jedoch ist es möglich, zu einem enum Operatoren zu definieren. Beispiel:
enum E { A, B };
inline E operator+ (E x, E y) { return E(int(a)+int(b)); }
E x = A;
x = x + B; // ist jetzt erlaubt
Karl-Heinz Krause
Technical Details
Message-ID:
<47msfk$rjb@news00.btx.dtag.de>Path:
arc1-ca.pugleaf.net!news00.btx.dtag.de!not-for-mailReferences:
<47kf1l$r5c@trumpet.uni-mannheim.de>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!news00.btx.dtag.de!not-for-mail From: Krause@btx.dtag.de (Karl-Heinz Krause) Newsgroups: de.comp.lang.c++ Subject: Re: enums Date: 7 Nov 1995 05:57:08 GMT Organization: Telekom Online Internet Gateway Message-ID: <47msfk$rjb@news00.btx.dtag.de> References: <47kf1l$r5c@trumpet.uni-mannheim.de> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Sender: 0913148778-0001@btx.dtag.de (Karl-Heinz Krause) X-Newsreader: Forte Free Agent 1.0.82