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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Noob32
13 / 1 / 0
Регистрация: 25.03.2013
Сообщений: 189
#1

Что такое пперечисления - C++

07.12.2013, 16:27. Просмотров 222. Ответов 1
Метки нет (Все метки)

Объясните плыз что такое перечисления, для чего нужны и как ими оперировать? В общем что и как.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2013, 16:27     Что такое пперечисления
Посмотрите здесь:

Что такое ID_FILE_NEW? - C++
Что такое ID_FILE_NEW? Какой заголовочный файл подключить? IntelliSense: идентификатор "ID_FILE_NEW" не определен

что такое Void - C++
Всем привет кто подскажет что такое Void.

Найти такое k, что (k-1)! < A < k! - C++
Дано положительное число А&gt;10. Найти такое k, что (k-1)!&lt;A&lt;k!

Что такое цикл? - C++
что значат эти строки? for (int i = n-1; i&gt;=0; i--) for(int j = 0; j&lt;10; j++){ min+=matr; index = 0; и ...

Что же это такое ? - C++
подскажите что это такое: int (**myint)(); myint = &amp;address; // address это Dll+0x00C060 SendPing((int)&amp;myint); ...

Что такое куча - C++
new (C++) Материал из Википедии — свободной энциклопедии new — оператор языка программирования C++, обеспечивающий выделение...

Что такое перестановка ? - C++
Всем доброго времени суток. Есть задача 'Школьник В*** записал на доске N чисел и утверждает, что это перестановка чисел 1, 2, ..N, то есть...

Что такое инкапсуляция? - C++
объясните пожалуйста что такое инкапсуляция и на примерах!

Что такое return out? - C++
///

Что такое композиция ? - C++
Читаю учебник Р.Лафоре &quot;Объектно-ориентированное программирование в C++&quot;. На странице 403 пишется про композицию. Пример не приводится....

Что такое таблица в С++? - C++
Нужно сделать поиск по таблице . Но мне не совсем понятно , что это такое ? Можно ли двумерный массив считать за таблицу ? ( в нём же тоже...

Что это такое? - C++
Написал большую программу (курсовая работа), после многочисленных правок закончились красные подчеркивания в тексте программы, но при...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Yanush
158 / 154 / 46
Регистрация: 28.09.2013
Сообщений: 287
Завершенные тесты: 1
07.12.2013, 16:35     Что такое пперечисления #2
Задавать такие вопросы на форуме это печаль, ибо для этого есть куча соответствующей литературы и поисковые системы (в том числе поиск по форуму)

http://www.softsvet.ru/2007/08/07/pe..._jazyke_s.html

И вот ещё откуда-то ©
Кликните здесь для просмотра всего текста
Перечисления со строгой типизацией [править]
В стандартном C++ перечисления не являются типобезопасными. В действительности они представлены целыми числами, несмотря на то, что сами типы перечислений различны между собой. Это позволяет производить сравнения между двумя значениями из разных перечислений. Единственной возможностью, которую предлагает C++03 для защиты перечислений, является запрет на неявное преобразование целых чисел или элементов одного перечисления в элементы другого перечисления. Кроме того, способ представления в памяти (целочисленный тип) зависит от реализации и поэтому не является переносимым. Наконец, элементы перечислений имеют общую область видимости, что приводит к невозможности создания элементов с одинаковым именем в разных перечислениях.
C++11 предлагает специальную классификацию этих перечислений, свободную от вышеописанных недостатков. Для описания таких перечислений используется объявление enum class (также возможно использование enum struct в качестве синонима):
enum class Enumeration {
Val1,
Val2,
Val3 = 100,
Val4, /* = 101 */
};
Такое перечисление является типобезопасным. Элементы классового перечисления невозможно неявно преобразовать в целые числа. Как следствие, сравнение с целыми числами также невозможно (выражение Enumeration::Val4 == 101 приводит к ошибке компиляции).
Тип классового перечисления теперь не зависит от реализации. По умолчанию, как в случае выше, таким типом является int, но в иных случаях тип может быть задан вручную следующим образом:
enum class Enum2 : unsigned int {Val1, Val2};
Область действия элементов перечислений определяется областью действия имени перечисления. Использование имён элементов требует указания имени классового перечисления. Так, например, значение Enum2::Val1 определено, а значение Val1 — не определено.
Кроме того, C++11 предлагает возможность указания явной области видимости и низлежащего типа и для обычных перечислений:
enum Enum3 : unsigned long {Val1 = 1, Val2};
В данном примере имена элементов перечисления определены в пространстве перечисления (Enum3::Val1), но для обеспечения обратной совместимости имена элементов также доступны в общей области видимости.
Также в C++11 возможно предварительное объявление перечислений. В предыдущих версиях С++ это было невозможным, поскольку размер перечисления зависел от его элементов. Такие объявления можно использовать только в тех случаях, когда размер перечисления указан (явно или неявно):
enum Enum1; // неверно для C++ и C++11; низлежащий тип не может быть определён
enum Enum2 : unsigned int; // верно для C++11, низлежащий тип указан явно
enum class Enum3; // верно для C++11, низлежащий тип — int
enum class Enum4 : unsigned int; // верно для C++11.
enum Enum2 : unsigned short; // неверно для C++11, поскольку Enum2 ранее объявлен с иным низлежащим типом
Ответ Создать тему
Опции темы

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