Erzeugung von Zufallszahlen enums
Wie kann ich nach dem Zufallsprinzip wählen Sie einen Wert für einen enum-Typ in C++?
Ich möchte so etwas wie dies tun.
enum my_type(A,B,C,D,E,F,G,h,J,V);
my_type test(rand() % 10);
Aber das ist illegal... es ist nicht eine implizite Konvertierung von int in einen enum-Typ.
static_cast ist ein guter Freund in solchen Situationen.
InformationsquelleAutor null_radix | 2010-06-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie etwa:
Natürlich, mein C++ ist rostig, guter Fang.
Dies funktioniert nicht, wenn die enum-Werte sind nicht zusammenhängend.
Können Sie ein Beispiel geben?
1, b = 2, c = 4, d = 16. Die
rand()
geben Sie ungültige Werte.InformationsquelleAutor zildjohn01
Es gibt keine implizite Konvertierung, aber explizit wird:
InformationsquelleAutor Mike Seymour