27 статей
Базовые понятия языка C++ — типы данных, идентификаторы и операторы. Разбираются операторы ветвления, циклы и объявление функций как первые строительные блоки программ.
Указатели, массивы и строки как основа работы с памятью в C++. Рассматриваются адресация, void*, арифметика указателей и их связь с массивами и строковыми литералами.
Пользовательские составные типы — структуры (struct) и объединения (union). Показаны различия между struct и class, а также особенности хранения данных в union.
Устройство памяти компьютера и архитектуры фон Неймана и Гарвардская. Рассматриваются уровни памяти от регистров до дисков и работа с памятью на уровне процесса.
Процесс раздельной компиляции и её преимущества для больших проектов. Объясняется роль заголовочных и cpp-файлов, а также этапы сборки программы.
Ссылки как альтернатива указателям, правила инициализации переменных и продление жизни временных объектов. Также разбираются перегрузка функций и именованные скоупы.
Введение в объектно-ориентированное программирование через понятия абстракции и инкапсуляции. Рассматривается инвариант класса и сокрытие деталей реализации.
Перегрузка функций, методов и операторов в C++. Даётся классификация операторов и правила, по которым компилятор выбирает подходящую перегрузку.
Наследование классов в ООП — базовые и производные классы, заимствование функциональности. Показывается, как наследование открывает дорогу к полиморфизму.
Динамический и статический полиморфизм в C++ через виртуальные функции. Объясняются позднее и раннее связывание и работа с объектами через единый интерфейс.