|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
11.04.2017, 16:42 | #1 |
Форумчанин
Регистрация: 09.04.2017
Сообщений: 598
|
Перечисления
Здравствуйте!
Как я понял перечисления, надо создавать имя перечисления enum imya{a,s,d};, а после в программе imya xz, mz; Но вот изучая далее С++ встретился с таким примером при работе со строками: class String { private: enum {SZ=80;}; char str[SZ]; Как работает логика перечислений в таком случае? Как понять полнее возможности такого типа данных? P.S. Не знаю как удалить 2 предыдущие темы которые мне больше не нужны))) |
11.04.2017, 17:20 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
Никак, здесь перечисление исползуется просто как int константа.
|
12.04.2017, 14:39 | #3 |
Форумчанин
Регистрация: 09.04.2017
Сообщений: 598
|
Но ведь принцип класса как я читал, в том, что переменные не определяются внутри класса.
|
12.04.2017, 14:59 | #4 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,708
|
Где вы такой бред прочитали? Класс как раз объединяет свои свойства и методы.
|
12.04.2017, 14:59 | #5 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
С чего вдруг? Где читали?
Или вы имеете в виду, что нельзя написать так? Код:
Код:
Ну вот видимо поэтому автор и решил так извратиться с помощью енума ) Правда для static const int вроде бы можно и так. Вроде в стандарте С++11 что-то улучшили насчет этого. http://www.stroustrup.com/C++11FAQ.html#member-init Никак, форум не для вас одного, может кому-то другому нужны )
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 12.04.2017 в 15:03. |
12.04.2017, 15:53 | #6 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
|
12.04.2017, 16:04 | #7 |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
Логика проста
enum определяет глобальные константы в области видимости, в вашем примере, String::SZ можно использовать как число 80. В С++ 11 это исправили class enum Такое объявление не делает SZ глобальным + нельзя его неявно как int использовать. |
12.04.2017, 18:55 | #8 |
Форумчанин
Регистрация: 09.04.2017
Сообщений: 598
|
Т.е. тот С++ который я изучаю слегка устарел? И да, я имел ввиду инициализацию.
|
12.04.2017, 18:59 | #9 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Да.
Ну не слегка, в С++11/14 много чего нового добавили, С++17 тоже не за горами )
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
13.04.2017, 03:41 | #10 |
Форумчанин
Регистрация: 09.04.2017
Сообщений: 598
|
А как их различают, по среде? И где список изменений по обновлениям? Это типа как WoT?
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перечисления. Метод GetValue в цикле. | BadCats | C# (си шарп) | 3 | 06.04.2016 08:18 |
перечисления в связке с циклом (C#) | BadCats | Помощь студентам | 7 | 08.02.2016 18:43 |
Перечисления в CLR проектах | cojuer | Visual C++ | 1 | 30.07.2013 09:45 |
ENUM-перечисления.Вовпрос? | Goody | Общие вопросы C/C++ | 5 | 18.04.2012 01:44 |
Перечисления в классах (С++) | Александр Елис | Помощь студентам | 1 | 22.01.2010 17:10 |