Zuweisung an den Typ enum
Nach oben zu Aufzählungen - Index
Die Regeln für Ausdrücke, die enum-Typen enthalten, sind strenger geworden. Der Compiler unterstützt diese Regeln durch Fehlermeldungen, wenn der Compiler-Schalter -A eingeschaltet ist (d.h. ANSI C++ Konformität).
Der Versuch, einer Variable vom Typ enum ein Integer zuzuweisen, verursacht einen Fehler:
enum color
{
red, green, blue
};
int f()
{
color c;
c = 0;
return c;
}
Das selbe geschieht, wenn ein Integer als Parameter an eine Funktion überwiesen wird. Beachten Sie, dass das Ergebnis des Ausdrucks flag1|flag2
vom Typ int ist.
enum e
{
flag1 = 0x01,
flag2 = 0x02
};
void p(e);
void f()
{
p(flag1|flag2);
}
Um das Beispiel compilieren zu können, muss der Ausdruck flag1|flag2
in folgenden enum-Typ umgewandelt werden: (e)(flag1|flag2)
.