Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

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

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

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

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

icq: 482-373-277
По умолчанию

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

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

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

icq: 482-373-277
По умолчанию

Ну вот хотя бы почти из Страуструпа:
Код:
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, 19:26   #5
Syltan
Заблокирован
 
Регистрация: 27.08.2009
Сообщений: 569
Репутация: -14
По умолчанию

Вот пробую, чего-то не выходит.
Хочу поэкспериментировать.
Код:
#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, 19:31   #6
Гром
Профессионал
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
Репутация: 473

icq: 482-373-277
По умолчанию

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

Сделал так, не помогло.
Код:
#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 в 21:35.
Syltan вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


23:02.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.