#29. Операторы const_cast и reinterpret_cast | Уроки ООП C++

Поділитися
Вставка
  • Опубліковано 1 тра 2024
  • Практический курс по C/C++: stepik.org/course/193691/
    Телеграм-канал: t.me/java_and_c
    Инфо-сайт: proproprogs.ru/cpp_oop
    Порядок и особенности работы операторов const_cast и reinterpret_cast. Зачем и для чего введены новые операторы приведения типов в языке C++.

КОМЕНТАРІ • 10

  • @nikitos-mw9nb
    @nikitos-mw9nb Місяць тому +1

    Спасибо что ты существуешь!!! Уроки просто бомба!🎉🎉🎉

  • @szapsis
    @szapsis Місяць тому +1

    Спасибо большое за твой труд друг!

  • @andredru4278
    @andredru4278 17 днів тому +1

    Спасибо. Когда-нибудь пригодится.

  • @user-ze1hr6jg4i
    @user-ze1hr6jg4i Місяць тому +1

    Отличные уроки, начал погружаться в C++ в т. ч. и по этим урокам. Понравилось, что некоторые уроки раскрывают детали хранения в памяти.

  • @aloha4565
    @aloha4565 22 дні тому +1

    Сергей, на cppreference по c-style касту указано, что компилятор будет будет последовательно применять все виды кастов, начиная с const_cast, пока не получит результат, устраивающий его по каким-то критериям. С пользовательской точки зрения одно только это будет явно означать, что c-style каст применять категорически нельзя, поскольку это прямой путь к неопределенному поведению.
    Возможно, где-то дальше по курсу или в последующих его редакциях этого раздела нужно этот момент обязательно подчеркнуть, чтобы у зрителей/студентов не складывалось впечатление, что в принципе это допустимая конструкция, хоть и устаревшая.

  • @catsaur5991
    @catsaur5991 Місяць тому +1

    Спасибо за видео. Непонятен момент на 11:36. Почему если я сделаю так, ptr_3d->z = 123; , то все скомпилируется, но при попытке вывода std::cout

  • @AlekzzzR
    @AlekzzzR Місяць тому +1

    Спасибо за очередной урок!
    Вдохновившись вопросом catsaur5991, скомпилировал код с 11:36, добавив на 16-й строке "ptr_3d->z = 123". Программа упала с ошибкой "*** stack smashing detected ***: terminated".
    В принципе, если в C закастить меньшую структуру к указателю на большую структуру и обратиться к полю из большей структуры, то программа, ожижаемо, упадёт.
    В чём тогда смысл этих операторов преобразования?

    • @selfedu_rus
      @selfedu_rus  Місяць тому

      Конечно, упадет! )) Чудес здесь никаких нет. Просто эти операторы визуально подчеркивают и выделяют в тексте программы факт различных типов преобразований, вот и все. Ну и ограничены по действию своей областью действия.

    • @AlekzzzR
      @AlekzzzR Місяць тому

      @@selfedu_rus Ну тогда такое. Это и ide подсветить может. Или компилятор с варнинг выдать.