В Java Я могу работать с перечислениями, как классы. Например, я могу создать конструктор enum, который принимает значение и значение init enum и class stati c function values () для вывода списка всех значений enum.
Как это сделать в c ++?
Существует код java:
enum EquationType {
LINE("LINE"), LINE3D("LINE3D"), BEZIER("BEZIER"), PLANE("PLANE");
EquationType(String curve_type) {
type = curve_type;
} //END: CurveType()
String type; // enum's member variable that store symbolic name of type (for utilite using)
public String get_type_string() {
return type;
} //END: get_type_string()
public static EquationType _bystring(String type) throws Exception {
for (EquationType value : values()) { // search by list of enum's values
if (value.get_type_string().equals(type.trim().toUpperCase())) {
return value;
}
}
} //END: _bystring()
} //END: enum EquationType
Создает enum с 4 членами (LINE, LINE3D, BEZIER, PLANE). Этот тип класса перечисления имеет функцию, которая возвращает тип перечисления по значению имени строки, например EquationType._bystring ("PLANE"), будет возвращать EquationType.PLANE. Он использует функцию values (), которая перечисляет все возможные значения типа enum.
Есть ли какой-нибудь аналог в c ++?