C++ - язык системного программирования
C++ как язык системного программирования - ключевые принципы, область применения и инженерные требования к коду.
Экосистема приложений на C++
Экосистема приложений на C++ - области применения языка от системного ПО до высоконагруженных вычислений.
Что требуется знать перед началом изучения языка программирования C++
C++ — это мощный язык программирования общего назначения, который обеспечивает прямой доступ к аппаратным ресурсам компьютера при сохранении высокой производительности.
Первая программа на C++
Гайд по установке и настройке с написанием первой программы и её запуском.
Начало работы с C++
Директива препроцессора include используется для подключения заголовочных файлов в исходный код. Она сообщает компилятору вставить содержимое указанного файла в текущее место перед началом компиляции.
Конфигурация и сборка в C++
Конфигурация — это набор правил и переменных, которые управляют процессом превращения исходного текста в исполняемый продукт.
Простые приложения на C++
Примеры простых и полезных консольных приложений с демонстрацией концепций языка.
CMake — первая программа
Минимальный кроссплатформенный проект C++17 с CMake — структура, сборка и разбор CMakeLists построчно.
Google Test и Catch2 в C++
Модульные тесты с GTest и Catch2 в CMake-проекте — зачем отдельный target, примеры и запуск ctest.
Практические задания по C++
Набор мини-проектов для закрепления C++ — консоль, RAII, CMake, Qt, ranges и опционально Vulkan.
Рекомендации по разработке на C++
Набор советов, правил, принципов и обычаев в разработке на этом языке.
Типы данных в C++
Типизация, набор правил определения типа данных значений языка.
Операторы и выражения в C++
Операторы и выражения в C++ - семантика операций, приоритеты и построение корректной вычислительной логики.
Циклы и управляющие конструкции в C++
Циклы и управляющие конструкции в C++ - семантика ветвлений, повторений и контроль потока на уровне языка.
Объектно-ориентированное программирование в C++
ООП в C++ - классы, инкапсуляция, наследование и полиморфизм в системном контексте языка.
Композиция и наследование в C++
Когда использовать has-a вместо is-a, делегирование, интерфейсы и почему глубокие иерархии усложняют код.
RTTI в C++ — typeid и dynamic_cast
Идентификация типов во время выполнения, безопасное приведение в полиморфных иерархиях и когда RTTI отключают.
Класс в C++ — this, static, friend и вложенные типы
Указатель this, статические члены, дружественные классы, локальные и вложенные классы, inline-методы в теле класса.
Синтаксис и пунктуация в C++
Кавычки, точки, запятые, скобки и прочие знаки препинания.
Ключевые слова языка C++
Ключевые слова C++ - справочник основных языковых конструкций и их роли в системном и прикладном коде.
Встроенные функции и методы стандартной библиотеки
Набор функций, которые включены в стандартную библиотеку языка.
Переменные и области видимости в C++
Переменные и области видимости в C++ - время жизни, `scope`, `linkage` и влияние на архитектуру программы.
Функции и лямбда-выражения в C++
Функции и лямбда-выражения в C++ - декомпозиция логики, захваты контекста и функциональный стиль в системном коде.
Стандартные и сторонние библиотеки C++
Стандартные и сторонние библиотеки C++ - директивы подключения, организация заголовков и управление зависимостями.
Управление памятью в C++
Управление памятью в C++ - модель аллокации, владение ресурсами и современные практики безопасной работы с памятью.
Иерархия исключений в стандартной библиотеке C++
Иерархия std::exception, типы из stdexcept и особенности noexcept у деструкторов.
Обработка исключений в C++
try, catch, throw, пользовательские исключения, раскрутка стека и гарантии безопасности при исключениях.
Многопоточность и асинхронное выполнение в C++
Многопоточность и асинхронность в C++ - модели конкурентного выполнения и синхронизация параллельных задач.
Системное программирование на C++
Системное программирование на C++ - управление ресурсами ОС, низкоуровневые интерфейсы и требования к надёжности.
Разработка игр с использованием C++
Разработка игр на C++ - архитектура игровых систем, производительность движка и практические подходы.
Работа с типами
Работа с типами в C++ - система типов, преобразования и выбор корректных представлений данных для задач.
Работа с данными
Работа с данными в C++ - структуры хранения, управление ресурсами и эффективные стратегии обработки информации.
Сетевое взаимодействие в C++
Сетевое взаимодействие в C++ - сокеты, клиент-серверная модель и базовые принципы обмена данными по сети.
Особенности и расширения языка C++
C++ поддерживает несколько парадигм программирования, что позволяет выбирать наиболее подходящий стиль в зависимости от задачи: - Процедурное программирование: организация кода в виде функций и.
Qt - кроссплатформенный фреймворк на C++
Qt на C++ - кроссплатформенный фреймворк для GUI и системных приложений с богатой экосистемой инструментов.
Qt — первая программа
Минимальное окно на Qt6 и CMake — QWidget, сигналы и слоты, разбор кода построчно.
Qt Quick — первая программа на QML
Минимальное Qt Quick приложение — QML UI, счётчик на C++, CMake и связь с логикой через Q_PROPERTY.
SFML — 2D-графика и мультимедиа на C++
SFML — кроссплатформенная библиотека для окон, 2D-рендеринга, звука и сети с нативным C++ API; установка, игровой цикл и сравнение с SDL и Raylib.
SDL — мультимедиа и окна на C++
SDL2 — кроссплатформенный C-API для окон, ввода, аудио и рендеринга; связка с C++, CMake, SDL_image/mixer и сравнение с SFML.
Siv3D — 2D/3D и мультимедиа на C++
OpenSiv3D — header-friendly фреймворк для игр и визуализации: Scene, примитивы, шрифты, аудио, CMake и сравнение с Raylib и SFML.
Raylib — быстрые 2D/3D прототипы на C++
Raylib — лёгкая C-библиотека для окон, 2D/3D, звука и ввода; использование из C++, CMake, игровой цикл и сравнение с SFML и SDL.
OpenGL — 3D-графика на C++
OpenGL 3.3 core из C++ — GLFW, GLAD/GLEW, GLM, VBO/VAO, шейдеры GLSL, текстуры и связка с SFML, SDL и Qt.
DirectX — графика и мультимедиа на Windows
DirectX 11/12 для C++ на Windows — DXGI, D3D, HLSL, шаги инициализации, связка с MSVC и сравнение с OpenGL и Vulkan.
C++ — углублённые темы
Шаблоны, модули, модель памяти, исключения, сравнение с системными языками и инструменты — продолжение обзора C++.
Vulkan и низкоуровневая графика на C++
Vulkan для C++ — объекты API, конвейер, синхронизация, CMake/GLFW и место среди SFML, SDL, Raylib, OpenGL и DirectX.
Справочник по C++
Справочник-шпаргалка по C++: типы, синтаксис, стандартная библиотека, типовые паттерны.
Идиомы современного C++
RAII, Rule of Five, copy-and-swap, move-and-swap, remove-erase и другие устойчивые приёмы — когда что применять.
Диапазоны и представления в C++20
std::ranges, ленивые views, конвейеры filter-transform и remove-erase без лишних копий — практическое руководство.
Компиляторы и toolchain C++
GCC, Clang, MSVC, Intel oneAPI и MinGW — как выбрать компилятор, стандартную библиотеку и флаги; эквиваленты команд и типичные ошибки линковки.
Легаси — C++ Builder и Win32 RAD
Embarcadero C++ Builder, VCL и RAD Studio — для кого этот стек, чем отличается от Qt/CMake и как безопасно сопровождать старые Win32-проекты.
C++ — итоги
Итоги раздела «C++» — FAQ и краткие ответы по теме.
C++ — чек-лист
Чек-лист раздела «C++» — вопросы для самопроверки.
C++ — о разделе
Раздел про C++ как язык системного и прикладного программирования: от первой программы до сборки, памяти, потоков и экосистемы библиотек.