Форум программистов, компьютерный форум CyberForum.ru

Как вытащить значение с enum? - C++

Восстановить пароль Регистрация
 
dmitro_ua
0 / 0 / 0
Регистрация: 06.08.2013
Сообщений: 11
06.08.2013, 22:06     Как вытащить значение с enum? #1
У меня перечисленны в enum допустимые типы автомобилей и потом количество мест для каждого из них. Как правильно в классе написать конструктор, который будет по заданомму типу автомобиля брать количество мест для посадки?

C++
1
2
3
4
5
6
7
8
9
10
enum CarType
{
    Car_Gaz,
    Car_Limo,
    Car_Jip,
    Car_Audi8,
    Car_Oka,
    Car_MAX,
};
int CSits[Car_MAX] = {13,24,7,5,4};
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.08.2013, 22:06     Как вытащить значение с enum?
Посмотрите здесь:

Как вытащить массив структур? C++
C++ Как работать с типом enum?
Что такое enum и как им пользоваться C++
случайное значение из enum, c++ C++
Работа со стеком (вытащить значение и сохранить в переменную) C++
Как вытащить из строки значение? C++
Как результат функции конвертировать в тип Enum? C++
С++, как заменить в коде char массив на enum? C++
Как правильно работать с enum в классе? C++
Как сделать тип enum в структуре беззнаковым C++
Как перевести матрицу с enum в char C++
Работа с enum, как вывести значение C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4382 / 3225 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
06.08.2013, 22:16     Как вытащить значение с enum? #2
dmitro_ua, так у Вас всё написано же. В чем вопрос?
DU
1478 / 1054 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
06.08.2013, 22:35     Как вытащить значение с enum? #3
т.е. enum кастятся в инты и по умолчанию они идут от нуля, можете этим воспользоваться:
C++
1
2
3
4
5
Constructor(CarType carType)
{
   int sitsCount = CSits[carType]; // работает при условии, что в этом месте массив CSits доступен,
                                             // его размер нормальный и енумы идут от нуля.
}
dmitro_ua
0 / 0 / 0
Регистрация: 06.08.2013
Сообщений: 11
06.08.2013, 22:45  [ТС]     Как вытащить значение с enum? #4
Благодарю!
XRuZzz
Антикодер
603 / 504 / 25
Регистрация: 15.09.2012
Сообщений: 2,450
06.08.2013, 22:46     Как вытащить значение с enum? #5
C++
1
2
3
4
5
int Cars::getAmountPlaces(int type)
{
     if (Car_Gaz <= type && type < Car_MAX)  return CSits[type];
     else return -1;
}
и в конструкторе вызываем этот метод
Tulosba
06.08.2013, 22:52     Как вытащить значение с enum?
  #6

Не по теме:

Цитата Сообщение от DU Посмотреть сообщение
enum кастятся в инты и по умолчанию они идут от нуля
Никак не могу поверить, что ТС, задав в коде
Цитата Сообщение от dmitro_ua Посмотреть сообщение
int CSits[Car_MAX] = {13,24,7,5,4};
не смог сделать тривиальной операции подстановки индекса.

Yandex
Объявления
06.08.2013, 22:52     Как вытащить значение с enum?
Ответ Создать тему
Опции темы

Текущее время: 04:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru