====== enums ======
Um einfache Enums kurz zu halten, können Werte des Basistyps einfach zugewiesen werden.
Digit enums int
{
One = 1;
Two = 2;
Three = 3;
Four = 4;
Five = 5;
Six = 6;
};
Enumklassen sind normale Klassen, die öffentliche konstante, statische Member haben:
Color enums thistype
{
private: RedValue, GreenValue, BlueValue is byte;
construct( RedValue, GreenValue, BlueValue );
Red = thistype( 255, 0, 0 );
Green = thistype( 0, 255, 0 );
Blue = thistype( 0, 0, 255 );
}
Eine Funktion
void set( Color color );
weiß nun ja, dass sie eine Color bekommt und kann nun auf zwei Arten gerufen werden:
set( Color::Red );
set( Red );
Der zweite Aufruf ohne den Typen erlaubt problemloses Umbenennen von Color.
Eine Überladung von set mit AlertLevel, bei der es ein AlertLevel::Red gäbe, erzwingt eine Fehlermeldung, bzw. man muss entweder set( Color::Red ), bzw. set( AlertLevel::Red ) rufen.