Перечисляемый тип enum С++. Изучение С++ для начинающих. Урок
ฝัง
- เผยแพร่เมื่อ 28 ก.ย. 2024
- Если вам нравятся мои уроки, вы хотите поддержать меня и развитие канала, то можете сделать это тут!=)
www.donationale...
или тут
/ simplecode
Уроки по программированию
Наша группа ВК smplcode
Подписывайтесь на канал / @simplecodeit
*Cамый лучший способ сказать "спасибо" - поставить лайк и и поделиться уроком с друзьями. Это очень мотивирует создавать полезные уроки =)*
охуел епта
Наконец-то я дошел до ENUM всегда было интересно знать что это ! Я блин я реально дошел до 124 урока ! :) Сергей , низкий поклон за твой труд !
Красавчик!
А как ему было трудно дойти до записи этого урока)
Я хотів подякувати вам за вашу роботу. Добра вам!
Шикарные ролики. Каждый раз удивляюсь как вы доходчиво объясняете материал.
Вы такой зайчик!)) Вы так всё хорошо и понятно объясняете!) Лучше чем любой преподаватель в моём вузе.
Спасибо за урок) Ещё немного не хватает информации о применении ключевого слова "class" в определении перечисления. Оно тоже служит для "незасорения" пространства имён. Если вы напишите "enum class PCState {}", то в программе вы уже не сможете обратится к какому-то состоянию, как к константе. То есть компилятор вас обяжет использовать название перечисления, например "PCState::OFF".
Спасибо, очень доходчиво. Хочу добавить, что если идёт явное присвоение значения то последующие если не задать то они сами инкрементятся, это полезно если например числа подряд, но не с нуля.
#enum #SimpleCode #урокипрограммирования
Классно обьясняешь!!! Спасибо!!!
Сергей! Ты как всегда великолепен! Браво!
спасибо за урок, всё кратко и по делу!
Спасибо за урок!
когда то учил какой то си-подобный язык по убогим плейлистам и там про енум рассказывали в первых уроках не давая понять что это и зачем он нужен. сейчас я по настоящему узнал что это и оказывается это очень полезная вещь а не как я раньше думал неиспользуемая фигня
Спасибо за бесценный труд!)
Лайфхак: как удлиннить 0 до PC::PCState::OFF)0)
спасибо большое друг!!
Прекрасный пример!
Не знаю на счет других IDE, но в VC2017 синтаксис позволяет обращаться напрямую к данным enum без указания их типа. Пример:
#include
using namespace std;
class pc
{
public:
enum PCS { OFF, ON, SLEEP };
PCS getstate() { return State; }
void setstate(PCS State) { this->State = State; }
private:
PCS State;
};
int main()
{
setlocale(LC_ALL, "ru");
pc PC;
PC.setstate(PC.OFF);
switch (PC.getstate())
{
case PC.ON:
cout
Все верно, можно даже без "PC." Но это работает, если писать такие маленькие программы, как в примере, В больших проектах те же настройки OFF и ON могут служить для многих целей с разными типами данных, и там уже придется обращаться через указание конкретного типа, дабы не фантазировать с названиями))
Сергей, спасибо!
Thank you for the lesson!
Лучшие уроки:0
к стати знать числовое значение переменных внутри класса enum нужно. Если вы например пользуетесь методом Swich - легче задавать логику выбора в зоне видимости свича.
🐢 ух за 3 месяца я уже на 124 уроке тусуюсь. Если бы не Сергей, давно бы перешёл piton учить, там всё ж полегче
Отличные уроки, спасибо огромное.
покажу то,как эту тему обьяснил мне copilot
enum в C++ - это специальный тип данных, который позволяет создавать свои собственные типы данных, используя ключевое слово enum. Элементы enum представляют собой целочисленные константы, которые упорядочены в список.
Вот простой пример:
enum Day {Mon, Tue, Wed, Thu, Fri, Sat, Sun};
В этом примере Day - это новый тип данных, а Mon, Tue, Wed и т.д. - это значения этого типа данных. По умолчанию, Mon будет равно 0, Tue будет равно 1, и так далее. Вы можете использовать эти значения в своем коде, как показано ниже:
Day today = Mon;
if (today == Mon) {
cout
Сергей можно просто - ON, вместо - PCState::ON. Я не мог понять - зачем нас повторно указывать состояние через PCState, если мы уже объявили переменную данного типа.
Спасибо!!!
Надо ещё узнать, как реализовать то, чтобы можно было в аргументы функций передавать такие объединения:
"EMUM::ONE | ENUM::TWO | ENUM::THREE"
лучший канал)
Спасибо!
Люблю использовать enum, но я обычно не называю его, а чтобы понять, что значит этот enum, я просто пишу комментарий над ним
Стоп, я заметил, что в enum не пишут типы данных. Там какой-то по дефолту стоит, наверное строка.
У меня работате и с: pc.SetState(PC::ON); Вроде мы так можем делать так как в самом PC есть Enum)
Шел 2019, 507 лайков и еще ни одного дизлайка)
@@ГарикКубич уже 871 лайк и 0 дизов))))
874 лайка 0 дизов
2023. дизлайки скрыли)
SC - это
похоже на макрос?
ха у меня даже PCState указывать не нужно
компилятор сам читает
ну наверное только потому что там всего один инициализирующий список
Назовём её Ass)
class ass{};
"нормальная! скорость самолета - называется "крейсерская". Так, к сведению, если что:))
Благодарю! Замечательный урок, он упрощает мои действия в коде. Спасибо за ваши старания
Спасибо за урок!
Создай, пожалуйста, видео про работу с файлами в стиле С...Нашёл код в нете создал проект, а компилятор ругается! Довольно странно! И ещё мне кажется давно уже надо было создать урок про структуры...ещё до классов...видос про пространно имён тоже на мой взгляд очень актуальная тема и хотелось бы в скором времени его увидеть, ах да чуть не забыл как разбить проект на файлы тоже очень важная тема! И это не только мои пожелания, а пожелания всех тех программистов начинающих, которые смотрят твои уроки, с которыми я общаюсь через ВК! )))
Спасибо за урок!
Огромное спасибо за уроки! Объясняете намного понятнее, чем мой препод. Всегда ставлю лайк, а потом смотрю урок, т.к. знаю, что всё будет на высоте:) Есть просьба. Сделайте, пожалуйста, очень подробный урок или стрим по работе со строками типа string
В плейлисте есть же целых два стрима по типу данных string (данные видеоролики, Денис, были выложены еще за 3 месяца до твоего поста).
Максим Щемелев , там создание своего класса, а мне надо было работа с stl string
Отличный урок, спасибо!
Спасибо за урок!!!
Пасиб за урок. Решил написать змейку, нашёл на ютубе урок, а там этот enum. И вот вы мне помогли разобраться что к чему
Понимаю, что прошло 2 года, но создавать змейку по уроку как-то так себе идея, лучше попробовать самому
@@tatovka5209 о салам
@@ВадимЛютин-е1ъ а ты кто?
Опубликуйте карту ,я вам заплатить готов за такие хорошие уроки. )
Если есть такое желание, то способы, как поддержать меня и канал, есть в описании под каждыми видео =)
Спасибо!
Спасибо за Урок!
Было бы круто посмотреть на подобие игры крестики-нолики на принципах ООП
Забыл рассказать, как сделать так чтобы enum занимал в памяти определённый объём
Like it!
если вы решите упороться и попробуете хранить строку, то это будет примерно так
class PC
{
public:
enum PCState
{
ON,
OFF,
SLEEP,
EAT
};
enum Speed
{
MIN,
RECOMEND,
MAX
};
PCState
GetState()
{
return State;
}
void SetState(PCState State)
{
this->State = State;
}
Speed GetSpeed() { return Speed; }
void SetSpeed(Speed s) { Speed = s; }
const char *GetSpeedAsString()
{
static const char *speedStrings[] = {"Медленно", "Нормально", "Быстро"};
return speedStrings[Speed];
}
private:
PCState State;
Speed Speed;
};
int main()
{
SetConsoleCP(65001);
SetConsoleOutputCP(65001);
setlocale(LC_ALL, "ru_RU.UTF-8");
PC pc;
pc.SetState(PC::PCState::EAT);
pc.SetSpeed(PC::Speed::RECOMEND);
switch (pc.GetState())
{
case PC::PCState::ON:
cout
Вывод : Перечисления служат для 1) Определения состояние объекта, а так же определения его поведения на основе состояния . 2 ) Устранения магический чисел 3 ) Читаймость кода
спасибо
Аригато, братан
аники
Скажи пожалуйста есть ли у тебя ролик на тему "enum class"?
Спасибо автору, лучшие уроки
up
классные уроки, Сергей! Благодарю! если что то непонятно, постоянно смотрю ваши уроки, и сразу все становится максимально понятно)
У меня сейчас так работает PC::OFF (без PCState::)
спасибо
спасибо
как ни крути все ровно костыль получается
Не, словами довольно удобно
Спасибо за урок!
Да, наконец-то и я тоже узнал что такое enum.
Красавчик, я тоже теперь
Здравствуйте.
Подскажите пожалуйста, не могу сообразить...
Вот пишу список, например:
typedef enum {
a,
b,
c
}test;
А в mine пишу так:
cout
mine это добывать