К курсам
AI013 Professional

Современный курс по C++

Этот учебник призван предоставить опытным разработчикам краткую справку по новым функциям C++11/14/17/20. Охватывает улучшения удобства использования языка, повышение производительности во время выполнения, новые контейнеры, умные указатели и управление памятью, регулярные выражения, параллельное программирование и обзор C++20.

4.8
30.0h
318 учеников
2 лайки
Искусственный интеллект
Начать обучение

Обзор курса

📚 Краткое содержание

Этот учебник предназначен для опытных разработчиков и служит краткой справкой по новым возможностям языка C++11/14/17/20. В материале рассматриваются улучшения удобства использования языка, повышение производительности во время выполнения, использование новых контейнеров, умные указатели и управление памятью, регулярные выражения, параллельное программирование, а также обзор языковых возможностей C++20.

Быстро освойте возможности C++11/14/17/20 и пройдите порог современного программирования на языке С++.

Автор: Оу Чанькун (Ou Changkun)

Благодарности: Лицензировано по лицензии CC BY-NC-ND 4.0, благодарность всем участникам проекта на GitHub и связанным сообществам.

🎯 Цели обучения

  1. Определить и проверить среду компиляции C++ и целевую архитектуру с помощью командной строки.
  2. Объяснить совместимость стандартов и исторические пересечения между языками С (C89, C99, C11) и С++ (С++98, С++1x).
  3. Реализовать функциональную межязыковую связь с использованием заголовочных файлов extern "C" и многоэтапных процессов компиляции.
  4. Устранить неоднозначность указателей с помощью nullptr и реализовать логику на этапе компиляции с помощью constexpr и if constexpr.
  5. Упростить сложные объявления с помощью auto, decltype и псевдонимов типов (using), одновременно обеспечив надёжный объектно-ориентированный дизайн с помощью override и final.
  6. Разработать высоконагрузочные универсальные алгоритмы с помощью переменных шаблонов, выражений свёртки и вывода параметров шаблонов без типа.
  7. Определить и реализовать выражения-ламбды с различными режимами захвата (по значению, по ссылке, по выражению, по общему виду).
  8. Использовать std::function и std::bind для создания гибких обёрток функций и частичного применения функций.
  9. Классифицировать выражения как л-значения (Lvalues), промежуточные значения (Prvalues) и временные значения (Xvalues), применяя семантику перемещения для оптимизации управления ресурсами классов.
  10. Отличать модели памяти и области применения std::array (фиксированный размер, стек) и std::vector (динамический размер, куча).

Уроки