Перечисления в стиле Java в C++C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Перечисления в стиле Java в C++

Сообщение Anonymous »

В Java я могу работать с перечислениями, как с классами. Например, я могу создать конструктор перечисления, который принимает значение, и инициализировать значение перечисления и статическую функцию класса Values() для вывода списка всех значений перечисления.
Как реализовать это на 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
Он создает перечисление с 4 членами (LINE, LINE3D, BEZIER, PLANE). В этом типе класса перечисления есть функция, которая возвращает тип перечисления по значению имени строки, например EquationType._bystring("PLANE"), вернет EquationType.PLANE. Он использует функциюvalues(), которая выводит список всех возможных значений типа перечисления.
Есть ли какой-нибудь аналог в C++?

Подробнее здесь: https://stackoverflow.com/questions/601 ... enums-in-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»