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

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

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

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

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

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

Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами? - C++
Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?

Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа? - C++
Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?

Что такое хэндлер файла? Что такое файловый указатель? - C++
Что такое хэндлер файла? Что такое файловый указатель?

Что такое заголовочный файл? Что такое файл исходного кода? Рассмотрите назначение каждого из них - C++
Что такое заголовочный файл? Что такое файл исходного кода? Рассмотрите назначение каждого из них пожалуйста.

Объяснить что такое "раздельная компиляция", что такое "интерфейс класса" и "реализация класса" на примере - C++
Есть класс, содержащий объекты и конструктор. Конструктор объявляется в одном из cpp файлов(их несколько). Можно ли, как-то, использовать...

Что такое перегрузка оператора? Что у меня в коде за ошибка? - C++
Что же я написал?? Что оно не компилится? Что значит error C2275: Superclass: недопустимое использование этого типа в качестве выражения ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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 ранее объявлен с иным низлежащим типом
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.12.2013, 16:35
Привет! Вот еще темы с ответами:

В этой части кода происходит объявление функций? Что такое void? Что в скобках? - C++
В этой части кода происходит объявление функций? Что такое void? Что в скобках? void get(float **mas, int N, int M); void...

Что такое #, include, что это означает - C++
______

Код не работает,говорит,что не знает,что такое delay(100).в чём проблема?как сделать,чтоб программа заработала? - C++
#include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <dos.h> int main() { int...

Кто-нибудь может подробно объяснить, что такое allocators, зачем это и что с ними делать? Нигде не нашёл инфы - C++
Заранее спасибо.


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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