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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как ускорить работу? http://www.cyberforum.ru/cpp-beginners/thread1032031.html
Прога ещё не доработана, сейчас интересует именно графический режим, когда нажимается клавиша 1-4 один из 4-х квадратов должен подсвечиваться красным, так то оно всё работает, но что бы оно подсветило нужно ткнуть раз 5-6 по клавише, вот собственно код: // sdfsdf.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> #include <Windows.h>...
C++ Исключения и проверка ввода Вот прочитал вчера много всего про исключения в с++, посмотрел несколько видеоуроков, все равно никак не пойму, какой выигрыш от исключений. Допустим мне надо проверить, чтобы пользователь вводил в консоль числа от 1-5, никаких других символов не должно поступать. Без использования механизма try-throw-catch я бы сделал в цикле этот ввод(пока не введет нормальное значение просить вводить заново).... http://www.cyberforum.ru/cpp-beginners/thread1032002.html
Банкомат C++
заданиеВ некотором государстве в обращении находятся банкноты определенных номиналов. Национальный банк хочет, чтобы банкомат выдавал любую запрошенную сумму при помощи минимального числа банкнот, считая, что запас банкнот каж дого номинала неограничен. Помогите Национальному банку решить эту задачу. Первая строка входных данных содержит натуральное число N не превосходящее 100 — количество...
Лицензия и пробный период C++
Здравствуйте, хотелось бы узнать как реализовать пробный период а так же проверку лицензионного ключа на С++. Получил лабораторную работу в которой необходимо написать программу которая бы давала ограниченный пробный период а затем не запускалась пока не введен лицензионный ключ. Не прошу выкладывать коды и прочее, интересен вопрос реализации, к чему можно привязаться для проверки лицензии и...
C++ Работа со строками в C++ http://www.cyberforum.ru/cpp-beginners/thread1031975.html
Возникла пара вопросов (только начинаю осваивать С++) Тут ниже задание: Задание 8 При вводе текста программа автоматически должна осуществлять перенос слов. Производится подсчет введенных символов, включая знаки препинания. После ввода всего текста должна быть возможность переформатирования, то есть изменяется допустимая длина строки (в пределах 30…68) позиций, при этом перестраивается...
C++ Сформировать двумерный массив. Удалить из него все строки в которых встречается заданое слово #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <limits.h> #define ROWS 100 #define COLS 100 int delete_stroka(int** arr,int N,int M); int main(void) { int sum = 0; подробнее

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

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