Синтаксис си/с++ 22

Синтаксис си/с++

Конструкторы и деструкторы: виды, порядок вызова, RAII

Введение Статья 524 кратко упомянула, что new/delete автоматически вызывают конструктор/деструктор — в этой статье разберём конструкторы и деструкторы систематически: их виды (по умолчанию, с параметрами, копирования), точный порядок…

Синтаксис си/с++

Наследование: одиночное, множественное, виртуальное

Введение Статья 521 показала простое наследование Rectangle : Shape концептуально через struct — в этой статье разберём наследование C++ систематически: одиночное (классический случай одного базового класса), множественное (несколько…

Синтаксис си/с++

Виртуальные функции и полиморфизм: vtable изнутри

Введение Статья 533 кратко упомянула virtual-деструктор для полиморфного удаления — в этой статье разберём виртуальные функции систематически: как они обеспечивают полиморфизм (вызов метода, соответствующего реальному, динамическому типу объекта,…

Синтаксис си/с++

Перегрузка операторов: принципы, какие операторы можно перегружать

Введение Многие предыдущие примеры использовали стандартные операторы (+, ==, <<) для встроенных типов — C++ позволяет определить, что значит применение этих же операторов к объектам пользовательских классов, через…

Синтаксис си/с++

Дружественные функции и классы (friend)

Введение Статья 535 уже использовала friend для перегрузки operator<< без подробного объяснения — в этой статье разберём friend систематически: что это означает с точки зрения инкапсуляции (статья 531),…

Синтаксис си/с++

Абстрактные классы и интерфейсы в C++

Введение Статья 534 разобрала виртуальные функции — абстрактные классы доводят эту концепцию до логического предела, объявляя методы, которые ОБЯЗАНЫ быть переопределены в производных классах, без какой-либо реализации по…

Синтаксис си/с++

Пространства имён (namespace): организация кода, using

Введение Статья 528 показала проблему конфликта имён при множественном включении заголовков — пространства имён решают связанную, но более общую проблему: конфликт имён функций/классов/переменных с одинаковыми именами из разных…

Синтаксис си/с++

Исключения: try/catch/throw, иерархия std::exception

Введение Статья 524 кратко упомянула std::bad_alloc, выбрасываемое new при неудачном выделении памяти — в этой статье разберём механизм исключений C++ систематически: синтаксис try/catch/throw, стандартную иерархию std::exception, и как…