Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Зачем вообще пользоваться enum?? Зачем он нужен? 
:(
    Опции темы
NetGod
  Дата 28.4.2008, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 22.3.2008
Где: город Мурманск, с трана Россия

Репутация: нет
Всего: нет



Зачем вообще пользоваться enum?? 
Вот код:
Код

#include <iostream>
using namespace std;
int main()
{
    enum color {red, blue, white, green};
    color qwerty;
    cout << qwerty << "\n";
    return 0;
    
}

 ! 
archimed7592
Не забываем пользоваться кнопкой "Код" или тэгами [code=xxx][/code]


Из него понятно что enum здесь создается для нового типа color что ли?
Вообще раскажите зачем нужен enum, подходящих статей нигде не нашел. smile 

Это сообщение отредактировал(а) archimed7592 - 28.4.2008, 11:36
PM MAIL ICQ   Вверх
JackYF
Дата 28.4.2008, 11:26 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 6
Всего: 162



Цитата(NetGod @  28.4.2008,  09:48 Найти цитируемый пост)
Вообще раскажите зачем нужен enum, подходящих статей нигде не нашел.

Чтобы ограничить значения, которые может принимать переменная. Ну и для удобства по мелочам.
И в учебниках это рассказывается обычно smile


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Dreamer_0x01
Дата 28.4.2008, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Терминатор
**


Профиль
Группа: Участник
Сообщений: 780
Регистрация: 14.4.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 12



enum нужен в тех случаях, когда нужно показать, что некая переменная должна принимать значения только из указанного списка.

Это удобно, когда используется оператор switch с достаточно большим количеством кейсов.
Тогда значения, перечисленные в enum, очень удобно подставлять в качестве констант, которые указываются в case.


--------------------
Нет ничего невозможного. Есть цели, и есть время и силы на их достижение.
PM ICQ   Вверх
archimed7592
Дата 28.4.2008, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 6
Всего: 93



Цитата(NetGod @  28.4.2008,  10:48 Найти цитируемый пост)
Вообще раскажите зачем нужен enum, подходящих статей нигде не нашел.

Да ну?


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
TGrey
Дата 28.4.2008, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 294
Регистрация: 1.12.2007

Репутация: нет
Всего: 1



Один небольшой пример из скрипта для игры.

Код

enum PlayerInfo
{
Kills,
Deaths,
Points,
Hits,
...
...
};

int arr[playerid][PlayerInfo];

if (arr[1][Kills] >=10)
{}

Ну теперь можно держать инфо для каждого игрока в масиве.
PM MAIL   Вверх
everyone
Дата 19.10.2009, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 218
Регистрация: 24.3.2004

Репутация: нет
Всего: 4



я долго смотрел на эту строку:

Код

int arr[playerid][PlayerInfo];


По-моему передавать PlayerInfo сюда - бессмыслица. Попробовал скомпилировать (MVC++2008), получил "illegal use this type as an expression".
--------------------
Что написал, то написал (Пилат)
PM ICQ Skype   Вверх
niXman
Дата 19.10.2009, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 211
Регистрация: 4.7.2009

Репутация: нет
Всего: 0



Цитата(everyone @  19.10.2009,  18:10 Найти цитируемый пост)
По-моему передавать PlayerInfo сюда - бессмыслица

А как вы считаете должно быть?
Замечу, что это массив типа int размерностью playerid/PlayerInfo. Которые, в свою очередь, должны быть константами.
--------------------
if ( !c++ ) {   *power--;   this->wussiness += 10;}
PM MAIL   Вверх
zim22
Дата 20.10.2009, 09:08 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(niXman @  19.10.2009,  21:11 Найти цитируемый пост)
А как вы считаете должно быть?

должно быть как-угодно. акцент в том, что это
Код

int arr[playerid][PlayerInfo];

не скомпилируется.


--------------------
PM MAIL   Вверх
niXman
Дата 20.10.2009, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 211
Регистрация: 4.7.2009

Репутация: нет
Всего: 0



Цитата(zim22 @  20.10.2009,  07:08 Найти цитируемый пост)
должно быть как-угодно.

Я к тому что, это вполне разумно)
Код


#include <iostream>
namespace player {
enum {
    playerid = 2,
    PlayerInfo = 2
};
} /** namespace player */
 
int main(int argc, char **argv) {

    int arr[player::playerid][player::PlayerInfo];
    
    std::cout << sizeof(arr) << std::endl;
    
    return 0;

}



Добавлено @ 10:30
Кстати. Вопрос немного не в тему, но все же.
   Каким образом можно объявить безымянный енум?

Это сообщение отредактировал(а) niXman - 20.10.2009, 10:52
--------------------
if ( !c++ ) {   *power--;   this->wussiness += 10;}
PM MAIL   Вверх
Леопольд
Дата 20.10.2009, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 3
Всего: 13



Цитата(niXman @  20.10.2009,  10:26 Найти цитируемый пост)
Кстати. Вопрос немного не в тему, но все же.
   Каким образом можно объявить безымянный енум?

Код

enum {one = 1, two};



--------------------
вопросов больше чем ответов
PM MAIL   Вверх
niXman
Дата 20.10.2009, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 211
Регистрация: 4.7.2009

Репутация: нет
Всего: 0



Леопольд, И вправду smile  Нужно typedef убрать.

Это сообщение отредактировал(а) niXman - 20.10.2009, 10:50
--------------------
if ( !c++ ) {   *power--;   this->wussiness += 10;}
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0802 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.