Статьи

C++

Учебные материалы по языку C++ — от основ до продвинутых тем

О разделе C++

C++ остается одним из самых популярных языков программирования, применяемым для создания приложений любого масштаба — от мобильных и прикладных до системных. Главная особенность языка — быстродействие, поэтому его часто выбирают для задач, где критична высокая производительность.

Содержание

1Введение в C++О языке C++, Компиляторам и среды разработки2Первая программа на C++Первое знакомство — что такое C++, как собрать первую программу и зачем вообще нужен этот язык3Настройка параметров компиляцииПервое знакомство — с настройками компилятора4Структура программыИз чего состоит программа на C++: функции, инструкции, блоки кода, директивы препроцессора и точка входа main().5ПеременныеЧто такое переменные в C++, как объявлять их, выбирать тип данных, присваивать значения и изменять их в программе.6Операторы сравнения и логические операторыСравнение значений, логические выражения и построение условий в C++.7Типы данных и константыОсновные типы данных C++, преобразование типов, литералы, константы const и constexpr.8Условные конструкции if, else и else ifКак выполнять разные участки кода в зависимости от условий.9Ввод и вывод в C++Как выводить информацию в консоль с помощью std::cout и получать данные от пользователя через std::cin, std::getline и другие средства стандартной библиотеки C++.10Конструкция switch и выбор из вариантовРазбираем switch, case, break, default и enum class.11using, пространства имён и псевдонимы в C++Как использовать пространства имён, директиву using, объявления using и псевдонимы типов для организации кода на C++.12Циклы while, do while и forПовторение операций, управление циклом и типичные ошибки.13Арифметические операторы в C++Арифметические операторы C++: сложение, вычитание, умножение, деление, остаток от деления, инкремент, декремент и составные операторы присваивания.14Массивы в C++Фиксированные массивы, индексы, размер и std::array.15Строки и std::stringСоздание, объединение, поиск, изменение и безопасный ввод строк.16Функции в C++Объявление, определение, возвращаемые значения и декомпозиция программы.17Передача параметров: значение, ссылка и указательКогда копировать аргумент, когда использовать ссылку и как передавать необязательные данные.18Перегрузка функцийНесколько функций с одним именем, различающихся параметрами.19Ссылки в C++Lvalue-ссылки, const-ссылки, ссылки как псевдонимы и ограничения времени жизни.20Указатели в C++Адреса, nullptr, разыменование, const-указатели и типичные ошибки.21Динамическая память и RAIIПочему ручной new/delete опасен и как управлять ресурсами в C++.22Структуры и перечисленияСоздание собственных типов с struct, enum class и инициализацией полей.23Классы и объектыОсновы ООП: поля, методы, this и создание объектов.24Конструкторы и деструкторыИнициализация объектов, списки инициализации, перегрузка конструкторов и время жизни.25Инкапсуляция и контроль состоянияМодификаторы доступа, инварианты и проектирование интерфейса класса.26Наследование в C++Базовые и производные классы, public-наследование и переиспользование интерфейса.27Полиморфизм и виртуальные функцииВиртуальные методы, override, абстрактные классы и виртуальные деструкторы.28Перегрузка операторовКак определить поведение операторов для собственных типов и сохранить ожидаемый смысл.29Шаблоны функций и классовПараметризация типов, вывод шаблонных аргументов и ограничения шаблонов.30Исключения и обработка ошибокtry, catch, throw, стандартные исключения и выбор стратегии обработки ошибок.31Работа с файламиЧтение и запись текстовых файлов через fstream, проверка ошибок и режимы открытия.32Контейнеры последовательностей: vector и другиеВыбор контейнера для последовательности, изменение размера и сложность операций.33Ассоциативные контейнеры: map, set и unordered_mapХранение уникальных ключей и пар ключ-значение в стандартной библиотеке.34Итераторы и алгоритмы STLfind, sort, count_if, erase-remove и использование алгоритмов стандартной библиотеки.35Лямбда-выраженияАнонимные функции, захват переменных и передача поведения в алгоритмы.36Умные указателиstd::unique_ptr, std::shared_ptr и std::weak_ptr для безопасного владения объектами.37Заголовочные файлы, include и ODRКак разделять объявления и определения, использовать include guards и избегать ошибок линковки.38Пространства имён и организация кодаnamespace, using, псевдонимы типов и избежание конфликтов имён.39Современный C++: auto, nullptr, range-for и structured bindingsКлючевые возможности C++11–C++20, которые делают код короче и безопаснее.40Компиляция, линковка и основы CMakeКак исходные файлы превращаются в исполняемый файл и как описать проект через CMake.41Отладка, assert и тестированиеКак находить ошибки, использовать отладчик и писать проверяемые функции.42Git и структура C++-проектаБазовые команды Git, организация файлов и практические правила поддержки проекта.43Итоговый проект: консольный менеджер задачЗакрепляем функции, структуры, контейнеры, файлы, условия и обработку ошибок в одном проекте.