В C++ наследование позволяет создавать новый класс (производный класс), используя существующий класс (базовый класс). Производный класс получает члены базового класса, включая данные и методы, и может добавлять свои собственные.
Основные принципы:
- Повторное использование кода: Позволяет использовать функциональность базового класса без ее переписывания.
- Расширяемость: Новый класс может расширять или изменять поведение базового класса.
- Полиморфизм (через виртуальные функции): Позволяет обрабатывать объекты разных классов в едином формате (через указатели или ссылки на базовый класс).
Типы наследования в C++:
- Единичное: Один производный класс наследует от одного базового класса.
- Множественное: Один производный класс наследует от нескольких базовых классов.
- Иерархическое: Несколько производных классов наследуют от одного базового класса.
- Многоуровневое: Класс наследует от другого класса, который, в свою очередь, также наследует от другого класса.
- Гибридное: Комбинация двух или более типов наследования.
Спецификаторы доступа при наследовании:
public: Публичные члены базового класса остаются публичными в производном, защищенные — защищенными, приватные — недоступны.
protected: Публичные и защищенные члены базового класса становятся защищенными в производном, приватные — недоступны.
private: Публичные и защищенные члены базового класса становятся приватными в производном, приватные — недоступны.
Пример:
cpp