Zuweisung an den Typ enum

Aus RAD Studio
Wechseln zu: Navigation, Suche

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).