Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2017, 16:42   #1
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию Перечисления

Здравствуйте!
Как я понял перечисления, надо создавать имя перечисления enum imya{a,s,d};, а после в программе imya xz, mz;
Но вот изучая далее С++ встретился с таким примером при работе со строками:
class String
{
private:
enum {SZ=80;};
char str[SZ];
Как работает логика перечислений в таком случае? Как понять полнее возможности такого типа данных?
P.S. Не знаю как удалить 2 предыдущие темы которые мне больше не нужны)))
KAMLS вне форума Ответить с цитированием
Старый 11.04.2017, 17:20   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Никак, здесь перечисление исползуется просто как int константа.
waleri вне форума Ответить с цитированием
Старый 12.04.2017, 14:39   #3
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию

Но ведь принцип класса как я читал, в том, что переменные не определяются внутри класса.
KAMLS вне форума Ответить с цитированием
Старый 12.04.2017, 14:59   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Где вы такой бред прочитали? Класс как раз объединяет свои свойства и методы.
p51x вне форума Ответить с цитированием
Старый 12.04.2017, 14:59   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

С чего вдруг? Где читали?
Или вы имеете в виду, что нельзя написать так?
Код:
class MyClass {
    int num = 42;
};
А только так:
Код:
class MyClass {
    int mum;

    MyClass() : num(42) { }
};

Ну вот видимо поэтому автор и решил так извратиться с помощью енума )

Правда для static const int вроде бы можно и так.

Вроде в стандарте С++11 что-то улучшили насчет этого.

http://www.stroustrup.com/C++11FAQ.html#member-init

Цитата:
Сообщение от KAMLS Посмотреть сообщение
Не знаю как удалить 2 предыдущие темы которые мне больше не нужны
Никак, форум не для вас одного, может кому-то другому нужны )
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 12.04.2017 в 15:03.
Alex11223 вне форума Ответить с цитированием
Старый 12.04.2017, 15:53   #6
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Цитата:
Сообщение от KAMLS Посмотреть сообщение
Но ведь принцип класса как я читал, в том, что переменные не определяются внутри класса.
Вы понимаете разницу между "переменная" и "константа"?
waleri вне форума Ответить с цитированием
Старый 12.04.2017, 16:04   #7
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

Логика проста

enum определяет глобальные константы в области видимости, в вашем примере, String::SZ можно использовать как число 80.

В С++ 11 это исправили

class enum

Такое объявление не делает SZ глобальным + нельзя его неявно как int использовать.
alexzk вне форума Ответить с цитированием
Старый 12.04.2017, 18:55   #8
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию

Цитата:
Сообщение от alexzk Посмотреть сообщение
Логика проста

enum определяет глобальные константы в области видимости, в вашем примере, String::SZ можно использовать как число 80.

В С++ 11 это исправили

class enum

Такое объявление не делает SZ глобальным + нельзя его неявно как int использовать.
Т.е. тот С++ который я изучаю слегка устарел? И да, я имел ввиду инициализацию.
KAMLS вне форума Ответить с цитированием
Старый 12.04.2017, 18:59   #9
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Да.
Ну не слегка, в С++11/14 много чего нового добавили, С++17 тоже не за горами )
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 13.04.2017, 03:41   #10
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию

А как их различают, по среде? И где список изменений по обновлениям? Это типа как WoT?
KAMLS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перечисления. Метод 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