C++. Отношения наследования в ООП. Что чему соответствует? Читаю "Язык Программирования С++. Лекции и Упражнения." — Прата.
Там упоминается (на сколько смог заметить) пять отношений наследования:is-a — являетсяhas-a — содержитuses-a — используетis-like-a — подобенis-implemented-as-a — реализован как
На сколько я смог понять:is-a соответствует открытому (public) наследованиюhas-a соответствует закрытому (private) наследованию или включению/композицииuses-a соответствует использованию дружественных (friend) классовis-like-a соответствует защищенному (protected) наследованиюis-implemented-as-a соответствует множественному наследованию
Поправьте, если не так. В сети ничего путного не нашел.

21 Авг 2019 в 07:02
220 +1
0
Ответы
1

В целом, приведенная вами интерпретация отношений наследования верна, но некоторые уточнения все же необходимы:

is-a (является) соответствует открытому (public) наследованию, где дочерний класс является специализацией (или видом) родительского класса.has-a (содержит) соответствует композиции, где один класс содержит внутри себя объект другого класса.uses-a (использует) обычно означает, что класс использует объект другого класса, но с другими семантическими оттенками может быть трудно точно классифицировать.is-like-a (подобен) используется реже и обычно означает паттерн проектирования, который пытается моделировать наследственные отношения в сложных иерархиях классов.is-implemented-as-a (реализован как) редко используемое отношение, которое обозначает специальные случаи множественного наследования, когда класс реализуется как комбинация нескольких базовых классов.

Если вам нужно более подробное объяснение или примеры каждого из отношений, можете задать конкретные вопросы.

20 Апр в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 577 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир