Перейти к содержанию
    

Лидеры

  1. juvf

    juvf

    Свой


    • Баллы

      4

    • Постов

      1 587


  2. saab

    saab

    Свой


    • Баллы

      1

    • Постов

      1 040


  3. adnega

    adnega

    Свой


    • Баллы

      1

    • Постов

      3 571


  4. one_eight_seven

    one_eight_seven

    Участник*


    • Баллы

      -1

    • Постов

      1 610


Популярный контент

Показан контент с высокой репутацией 13.03.2024 во всех областях

  1. это Вы не в ту степь ушли. А теперь напишите enum class En {FROST } и попробуйте тоже самое - int temp = FROST; 🙂 я сказал "int temp = FROST; нет ни какой разницы FROST - это дефайн или енум.". При чем тут различия между enum и enum class? Речь шла о том, что имя "FROST" писать как eFROST или как FROST? Разницы нет.
    2 балла
  2. Надеюсь, про защитный резистор 56кОм никто не забыл
    1 балл
  3. а причем тут строгая типизация? Вы, прежде чем кидаться словами, поймите, о чем речь идет, а потом уже будете обвинять других. Сбавьте обороты.
    1 балл
  4. что-то я действительно не понял. но я понял то, что Вы это сами не писали 😉 Написал. Компилятор выдал ошибку Error[Pe101]: "EN0" has already been declared in the current scope (�Hat line 32�h) myFile.cpp 36 Error[Pe101]: "EN1" has already been declared in the current scope (�Hat line 32�h) myFile.cpp 36 написал. И что? Что с этим дальше делать? Вы предлагаете int инициализировать типом A. А зачем? Теперь то, о чем я говорил. Допустим есть некий порог температуры. Автор программы библиотеки задает эту константу так: #define FROST 10 либо так enum {FORST = 10}; Сделал, отдал в продакшин. Теперь прикладной программист пишет свой код с использованием вашей библиотеки int temperature = FORST; //вот тут какая разница как в FORST попала 10? Тут прогер должен понимать, что создалась переменная типа int, и она инициализировалась значением 10. Это Эквивалент записи int temperature = 10; ps даже если очень жжет использовать enum class, очень хочется, но не хотите при каждом использовании кастовать, то закастуйте дефайном enum class A { EN0 = 10, EN1 = 20 }; #define FORST (static_cast<int>(A::EN0)) //так const int FORST2 = static_cast<int>(A::EN1); //ну или даже так int temp = FORST2 - FORST; //вот тут какая разница, как 10 и 20 попали/заменились на FORST и FORST2? эквивалент int temp = 10; Тут нужно понимать что в temp ляжет 10, которая вычислилась на этапе компиляции pps #define asd(m) (do(0){return 5*m;}) #define EN1 true #define TEMP2 asd(5) const int pi1 = 3; enum { ANGLE1 = pi1*10 + (EN1 ? TEMP2: 13)}; enum class A{ASD = ANGLE1, ASD2 = ANGLE1 + 6}; enum {QWE0 = static_cast<int>(A::ASD2), QWE1, QWE2}; #define POIU (QWE2 - 31) int angleOfHor = POIU; //в конечном счете это тоже самое, что и int angleOfHor = 32; Разворачивай хоть что, хоть в чем.
    1 балл
  5. Это Вы немного не поняли о чем я говорил. И причем тут проблемы енума и понимание того, каким методом была задана константа?
    0 баллов
  6. Это вы не поняли, что буковка e перед eEN1 или eEN2 - вообще ничего не поменяет. Более того, вы и читать не умеете. Я же сказал, компилятор - выругается, программист увидит, и поправит: test.cpp: In function ‘int main()’: test.cpp:12:13: error: ‘EN0’ was not declared in this scope 12 | int i = EN0; | ^~~ test.cpp:12:13: note: suggested alternatives: test.cpp:8:5: note: ‘B::EN0’ 8 | EN0, EN1 | ^~~ test.cpp:4:5: note: ‘A::EN0’ 4 | EN0, EN1 | ^~~ avi@mob:~/test$ Ещё раз призываю эволюционировать, сначала самому попробовать что-то сделать, а не постить влажные фантазии с апломбом гуру.
    -1 балл
  7. Да, виноват, действительно 😄 я тут про строгую типизацию, про сложные материи а у вас тут спор всего лишь про то, большими или маленькими буковками написать 😄 ну да, канешн, тут просто разные уровни темы, хе-хе. Лано, извините, больше не вмешиваюсь в ваш спор про большие и маленькие буковки, продолжайте, коллеги!
    -2 балла
×
×
  • Создать...