Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.11.2009, 16:38   #1
Syltan
Заблокирован
 
Регистрация: 27.08.2009
Сообщений: 569
По умолчанию enum

Подскажите по типу enum, как с ним работать. Что означает к примеру:
Код:
enum {privet, poka, molodes};
и

Код:
enum TSova {csNormal, csTroubleSolved, csTrouble)

2) Какое отношение, вот это всё имеет также к классам?

Последний раз редактировалось Syltan; 26.11.2009 в 16:44.
Syltan вне форума Ответить с цитированием
Старый 26.11.2009, 18:01   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Первое - определение трех целых констант privet == 0, poka == 1, molodes == 2.
Второе - это определение нового типа TSova, объекты которого могут принимать значения csNormal, csTroubleSolved, csTrouble.

По сути, перечисления - это, как и классы, определяемые пользователем типы.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 26.11.2009, 18:07   #3
Syltan
Заблокирован
 
Регистрация: 27.08.2009
Сообщений: 569
По умолчанию

А пример можно, как использовать, а то не совсем ясно?
Syltan вне форума Ответить с цитированием
Старый 26.11.2009, 18:13   #4
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Ну вот хотя бы почти из Страуструпа:
Код:
enum keyword {ASM, AUTO, BREAK};

void f(keyword key)
 {
 switch(key)
  {
  case ASM: /*...*/ break;
  case AUTO: /*...*/ break;
  case BREAK: /*...*/ break;
  }
 }
Или т.н. "трюк с перечислением":
Код:
class Matrix
 {
 enum {WIDTH = 4, HEIGHT = 3};
 int A[WIDTH][HEIGHT]; //A[4][3]
 //...
 };
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 26.11.2009, 18:26   #5
Syltan
Заблокирован
 
Регистрация: 27.08.2009
Сообщений: 569
По умолчанию

Вот пробую, чего-то не выходит.
Хочу поэкспериментировать.
Код:
#include <iostream>
using namespace std;


enum { RED, GREEN, BLUE };
void f(color c);


int main()
{
	
    cout<<f(c);

	return 0;
}

void f(color c)
{
    switch(c){
        case RED:
             break;
        case BLUE:
            break;
    }
}
Syltan вне форума Ответить с цитированием
Старый 26.11.2009, 18:31   #6
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

У вас же здесь тип color не определен. Сделайте так:
Код:
enum color { RED, GREEN, BLUE };
А насчет ввода - не знаю. Возможно, ввод целого (0, 1, 2) пропустит. (Впрочем, возможно, пропустит еще и 3, сейчас некогда еще раз смотреть про диапазон enum...)
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 26.11.2009, 19:24   #7
Syltan
Заблокирован
 
Регистрация: 27.08.2009
Сообщений: 569
По умолчанию

Сделал так, не помогло.
Код:
#include <iostream>
using namespace std;


enum color{ RED, GREEN, BLUE };
void f(color c);


int main()
{
	
    cout<<f(c);

	cin.ignore();
	cin.get();
}

void f(color c)
{
    switch(c){
        case RED:
             break;
        case BLUE:
            break;
    }
}

Последний раз редактировалось Sazary; 27.11.2009 в 20:35.
Syltan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос о перечислениях: enum DR&FG Общие вопросы C/C++ 2 24.10.2009 18:12
Работа с enum istoe Microsoft Office Excel 2 28.08.2009 12:53