Ключевое
Работа с иерархиями классов в C++ требует соблюдения нескольких принципов, таких как инкапсуляция, наследование, полиморфизм, использование виртуальных функций и соблюдение принципов SOLID.
Методы, которым посвящены отдельные страницы
Новые принципы
Принципы SOLID
- Single Responsibility Principle (SRP): Класс должен иметь одну ответственность.
- Open/Closed Principle (OCP): Классы должны быть открыты для расширения, но закрыты для модификации.
- Liskov Substitution Principle (LSP): Объекты базового класса должны заменяться объектами производного класса без нарушения корректности. см. Принцип подстановки Лисков.
- Interface Segregation Principle (ISP): Интерфейсы не должны заставлять классы реализовывать методы, которые они не используют.
- Dependency Inversion Principle (DIP): Модули верхнего уровня не должны зависеть от модулей нижнего уровня. Оба должны зависеть от абстракций.
Использование базовых и производных классов
- Явное приведение типов: Использование оператора приведения типов
dynamic_cast
для безопасного приведения указателей и ссылок на базовые и производные классы. - Избегание множественного наследования: Предпочтение композиции над множественным наследованием для избегания сложностей и неоднозначностей.
class Base1 {};
class Base2 {};
class Derived : public Base1, public Base2 {
// Множественное наследование
};