Классы в C++: отличие от struct, инкапсуляция
Введение Статья 521 разобрала struct как способ группировки данных — C++ расширяет эту концепцию через class, добавляя методы и контроль доступа. В этой статье разберём, чем class отличается…
Введение Статья 521 разобрала struct как способ группировки данных — C++ расширяет эту концепцию через class, добавляя методы и контроль доступа. В этой статье разберём, чем class отличается…
Введение Статья 524 кратко упомянула, что new/delete автоматически вызывают конструктор/деструктор — в этой статье разберём конструкторы и деструкторы систематически: их виды (по умолчанию, с параметрами, копирования), точный порядок…
Введение Статья 521 показала простое наследование Rectangle : Shape концептуально через struct — в этой статье разберём наследование C++ систематически: одиночное (классический случай одного базового класса), множественное (несколько…
Введение Статья 533 кратко упомянула virtual-деструктор для полиморфного удаления — в этой статье разберём виртуальные функции систематически: как они обеспечивают полиморфизм (вызов метода, соответствующего реальному, динамическому типу объекта,…
Введение Многие предыдущие примеры использовали стандартные операторы (+, ==, <<) для встроенных типов — C++ позволяет определить, что значит применение этих же операторов к объектам пользовательских классов, через…
Введение Статья 535 уже использовала friend для перегрузки operator<< без подробного объяснения — в этой статье разберём friend систематически: что это означает с точки зрения инкапсуляции (статья 531),…
Введение Статья 513 разобрала static для локальных переменных и переменных уровня файла — в этой статье разберём третье, отдельное значение того же ключевого слова применительно к членам класса:…
Введение Статья 534 разобрала виртуальные функции — абстрактные классы доводят эту концепцию до логического предела, объявляя методы, которые ОБЯЗАНЫ быть переопределены в производных классах, без какой-либо реализации по…
Введение Статья 528 показала проблему конфликта имён при множественном включении заголовков — пространства имён решают связанную, но более общую проблему: конфликт имён функций/классов/переменных с одинаковыми именами из разных…
Введение Статья 524 кратко упомянула std::bad_alloc, выбрасываемое new при неудачном выделении памяти — в этой статье разберём механизм исключений C++ систематически: синтаксис try/catch/throw, стандартную иерархию std::exception, и как…