Библиотека собеса по C++ | вопросы с собеседований
Ir al canal en Telegram
Вопросы с собеседований по C++ и ответы на них. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/9ccf302b Для обратной связи: @proglibrary_feeedback_bot
Mostrar más5 407
Suscriptores
-824 horas
-13 9517 días
-13 97630 días
Archivo de publicaciones
😎Разработчик, управляй памятью эффективно!
👉Начните на бесплатном вебинаре онлайн-курса «Программист С» — «Реализация динамических структур данных на Си и Python»: регистрация
Структура вебинара:
- Примеры динамических структур данных
- Схемы управления динамической памятью в С и Python
- Реализация бинарного дерева на С и Python
- Применение функций управления динамической памятью.
Вебинар будет полезен:
- Программистам, изучающим языки С и Python, для развития навыков в области эффективного управления памятью.
- Разработчикам в области больших данных.
🤝Понравится вебинар — продолжите обучение на курсе по специальной цене и даже в рассрочку!
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576 Erid 2VtzqxazLtK
❗Где проблема проблема в данном коде?
Аргумент для sizeof доджен быть *object, потому что в коде подставляется размер указателя а не структуры
🔮 Ключевое слово volatile
Ключевое слово volatile сообщает компилятору, что переменная может измениться, и компилятор об этом не узнает. Переменные, объявленные как volatile, не будут кэшироваться компилятором и, следовательно, всегда будут считываться из памяти
Одно из назначений этого ключевого слова — это работать с внешними устройствами, взаимодействие с которыми идёт через память. Проще говоря устройство устройство мапится напрямую в память процесса
🫵 Соберите свой первый проект на С++ и добавьте его в портфолио
👉 На бесплатном практическом уроке от OTUS и Карины Дорожкиной — ведущего разработчика в Kaspersky.
На вебинаре:
- разберем понятие единицы трансляции;
- проследим за ошибками компиляции и линковки, разберёмся в их причинах;
- создадим статическую библиотеку и подключим её при помощи CMake;
- обсудим разницу между статической библиотекой и динамической.
⏰ Занятие пройдёт 5 марта в 20:00 мск и будет приурочено к старту курса «Специализация C++ Developer». Доступна рассрочка на обучение!
👉 Зарегистрируйтесь прямо сейчас, чтобы занять место: https://otus.pw/rys9M/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru Erid 2VtzqwLCVmM
⚙️ Классы хранилищ (storage class)
Классы хранилищ — класс определяющий срок службы и область действия своих переменных и функций
В C++ поддерживаются следующие классы хранения: auto, static, register, extern и mutable, thread_local
Однако, ключевое слово register устарело в C++11. В C++17 он был удален и зарезервирован для использования в будущем
🪩 ТОП вопросов на С++ собеседовании
Видео с основными вопросами собеседований. Рассматриваются основные темы, такие как стандартная библиотека, указатели, виртуальность, шаблоны
👉 Ссылка
#junior
🔮 Что такое designated initializers?
designated initializers — фитча появишаяся в C++20, которая позволяет явно указывать инициализацию членов структуры или класса по их имени, а не по порядку объявления. Это удобно, когда структура или класс имеет большое количество членов или когда нужно инициализировать только определённые члены
👔 Что такое consteval?
consteval — спецификатор для функций, появился в C++20. Он обозначает, что функция будет вычислена на этапе компиляции. В этом его главное отличие от constexpr, который может быть вычеслен как на этапе компиляции, так и на этапе выполнения программы. consteval не получится вызвать во время выполнения программы, будет ошибка!
🔮 Curiously Recurring Template Pattern
Curiously Recurring Template Pattern (CRTP) или странно рекурсивный шаблон — идиома языка C++, идея которого заключается в том, что некоторый класс X наследуется от шаблона класса, использующего X как шаблонный параметр
🔥 Важно
- Это не паттерн, а техника
- Изначально это выглядело как ошибка компиляции
- Часто используется как альтернатива виртуальным методам
- Его полезно знать, чтобы не возникало ступора при прочтении такого кода
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
🔮 Историческая справка по lambda'м
Вышла обзорная статья по развитию lambda-выражений для разных стандартов языка
👉 Краткий обзор развития лямбда-выражений в C++11, C++14, C++17 и C++20
#junior
😎Сишарпист, погрузись в мир встраиваемых систем — программируй микроконтроллеры!
👉Начните на бесплатном вебинаре продвинутого олайн-курса «Программист С» — «Встраиваемые системы и программирование микроконтроллеров»: регистрация
На вебинаре мы:
— проведем обзор различных микроконтроллеров и их характеристик
— рассмотрим проектирование встраиваемых систем от идеи до реализации
— разберем на конкретном примере программирование микроконтроллеров
— сделаем отладку и тестирование встраиваемых систем.
Вебинар будет полезен:
— разработчикам и инженерам, которые интересуются встраиваемыми системами и программированием микроконтроллеров.
🤝Понравится вебинар — продолжите обучение на курсе по специальной цене и даже в рассрочку!
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576 Erid 2Vtzquo7sdc
🔮 Сетевое программирование в C++
Для C++ пока, к сожалению, не написали стандартную библиотеку для работы с сетью. Но, зато есть множество хороших библиотек (Boost.Asio, Qt Network и др.). Так же стоит понимать, что многие компании пишут свои библиотеки и поэтому стоит лучше познакомиться с основами сетевого программирования, чтобы легко вникать в любую из реализаций
Что касается Boost.Asio, то для него есть перевод книги Boost.Asio C++ Network Programming
🔗 Ссылочки со спискоми библиотек
• Awesome C++
• C++ Networking libraries
• Stackoverflow (старый пост)
🔍 Что такое empty base optimization?
В C++ любой класс, даже пустой, будет размером не меньше одного байта. Это необходимо, чтобы не было проблем с арифметикой указателей. Однако наследование от пустого класса будет приводить увеличению размера наследника. Но, в C++ предусмотрена empty base optimization, которая позволяет компилятору оптимизировать занимаемую память, так что объект, наследующий пустой базовый класс, не будет занимать дополнительной памяти за счет этого пустого базового класса. Таким образом, размер объекта будет таким же, как если бы он не наследовал пустой класс
🔮 assert
assert или утверждение — давно появившийся #define из стандартной библиотеки
Принцип работы
- Если выражение внутри assert ложное, будет terminate программы
- Для release сборке assert превратится в пустышку
Особенности
- В C++14 появился static_assert — применяется для выражений, которые могут быть вычислены в compile time
- assert очень часто используется в gamedev-коде, даже когда удобнее было бы применить try...catch. Это делается по нескольким причинам: assert дешевле (чем try...catch), в release сборке его вообще нет, поэтому можно их писать чуть ли не везде
🔮 Для чего нужен std::any?
• std::any — контейнер из стандартной библиотеки, в котором можно хранить любой тип данных, включая пользовательские типы
• std::any_cast — способ безопасного извлечения данных из объекта std::any. С помощью std::any_cast мы можем проверить тип во время выполненя
¡Ya disponible! Investigación de Telegram 2025 — los principales insights del año 
