|
0 / 0 / 0
Регистрация: 13.10.2021
Сообщений: 12
|
|
В чём суть Наследования c++13.04.2022, 11:04. Показов 1310. Ответов 17
Метки наследование с++ (Все метки)
Доброго времени бытья. Я никак не могу докопаться до сути наследования. Ответ по типу: суть наследования заключается в создании дочернего класса с функционалом и данными материнского - не годиться. Препод говорит что это по типу: ты используешь машину не для того чтобы слушать музыку, а для того чтобы ездить...
0
|
|
| 13.04.2022, 11:04 | |
|
Ответы с готовыми решениями:
17
Чем отличаются структуры для наследования интерфейса от структур для наследования реализаций? В чём суть оператора for(;;)
|
|
фрилансер
6451 / 5652 / 1129
Регистрация: 11.10.2019
Сообщений: 15,054
|
|
| 13.04.2022, 11:14 | |
|
Stas_Mak, дочерний класс изначально имеет все свойства и функционал родительского. Но любое свойство и функцию можно заменить на новые
Добавлено через 2 минуты Stas_Mak, а также следует учесть, что наследоваться никто не принуждает
0
|
|
|
0 / 0 / 0
Регистрация: 13.10.2021
Сообщений: 12
|
|
| 13.04.2022, 11:17 [ТС] | |
|
Как бы я тоже так думаю, но препод говорит что это не то... Есть ещё варианты?
0
|
|
|
фрилансер
6451 / 5652 / 1129
Регистрация: 11.10.2019
Сообщений: 15,054
|
|
| 13.04.2022, 11:17 | |
Сообщение было отмечено Stas_Mak как решение
Решение
2
|
|
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 13.04.2022, 11:26 | |
|
Stas_Mak,
Кроме того что дочерний класс может получать свойства родительского класса, при наследовании мы получаем такую штуку как полиморфизм (для этого требуются виртуальные методы). Второе дает нам возможность скрыть за одним интерфейсом разные реализации. Возможно это то, что ожидает от вас преподаватель. Добавлено через 3 минуты Но первичная суть наследования конечно же заключается в наследовании функционала родительского класса
0
|
|
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|||
| 13.04.2022, 11:36 | |||
|
То есть, старое доброе определение наследования и его назначение, вытекает из основных концепций ООП и нераздельно связанны между собой : - Абстракция. - Инкапсуляция. - Наследование. - Полиморфизм. То есть, что бы ответить на вопрос про наследование, сначала нужно ответить на вопрос Абстракции. Что бы ответить То есть, ваш преподаватель ответил урезанными словами, нарушив/покривив принцип абстрактности. Потому как на данный момент не ясно, что важнее, езда или прослушивании музыки ![]() Хотя по логике людской, важнее способность авто ездить, но авто наследует от Музыки, вот незадача , ага ? Потому пример учителя некорректен. Музыкальный аппарат в авто не должен участвовать в иерархии наследования, а быть лишь его частью, полем. В то же самое время, авто может наследовать Интерфейс, накладывающий на авто обязанность поддерживать возможность проигрывания музыки. Вот и стоит вам, Stas_Mak, приделить все же внимание Абстракции и Инкапсуляции, что бы полней понять Наследование.
0
|
|||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
||
| 13.04.2022, 11:45 | ||
|
0
|
||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||||
| 13.04.2022, 12:36 | ||||
|
Правильнее будет, тесно связаны . Undisputed, спасибо что так внимательно читаете
0
|
||||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 13.04.2022, 13:41 | |
|
0
|
|
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||
| 13.04.2022, 14:27 | ||
|
Все связано, так или иначе. Есть места где можно рассматривать основные концепции ООП раздельно, но это как смотреть фильм по отдельным сценам. Можно, но суть легко пропустить/не уловить.
0
|
||
|
2670 / 1333 / 479
Регистрация: 08.11.2016
Сообщений: 3,685
|
|
| 13.04.2022, 14:41 | |
|
Суть наследования не в получении функционала базового класса в производном, а в расширении базового класса производным.
0
|
|
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
||
| 13.04.2022, 15:20 | ||
|
SmallEvil,
Инкапсуляция это когда мы скрываем реализацию от пользователя этой реализации, не давая торчать наружу деталям реализации, которые не важны для пользователя. Цель - оставить разработчику свободу действий над деталями реализации с условием сохранения внешнего интерфейса, который использует пользователь (часто разработчик и пользователь - одно лицо). От того что инкапсуляцию может использовать какой нибудь класс-наследник еще не означает, что понятие наследования каким-то образом зависит от инкапсуляции. Это как сказать: "Если на камень ночью положили лампу, что бы светлее было, значит для того что бы понять что такое камень, нужно понять что такое лампа", но это же нелепо. Камень и лампа существуют отдельно, хотя могут взаимодействовать и если их когда-то видели вместе, то это еще не означает, что между их строением есть взаимосвязь. Добавлено через 7 минут
0
|
||
|
2670 / 1333 / 479
Регистрация: 08.11.2016
Сообщений: 3,685
|
|||||||
| 13.04.2022, 16:04 | |||||||
И почему переопределение не расширяет базовый класс? В производном классе мы можем как дать определение чистой виртуальной функции (не было и вот появилась), так и переопределив существующую реализацию вполне можем обратиться к реализации этой функции в базовом классе.
0
|
|||||||
|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
||
| 13.04.2022, 16:23 | ||
|
0
|
||
|
2670 / 1333 / 479
Регистрация: 08.11.2016
Сообщений: 3,685
|
|
| 13.04.2022, 16:57 | |
|
zayats80888, ну да и даже тут есть расширение базового класса при котором производный класс являясь базовым имеет собственный тип.
0
|
|
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
||||
| 13.04.2022, 17:04 | ||||
Более того, приведу вам пример, когда наследник не то что бы расширяет, а наоборот, урезает функционал базового класса. Например мы используем класс из какой нибудь библиотеки, один из методов которого бросает исключение если нет данных. Допустим мы посчитали, что исключение для нас избыточно и в следствии этого написали свой класс который наследует библиотечный класс, всё оставили как есть кроме того, что в том самом методе просто убрали исключение.Поэтому, в этом вопросе все же правильнее делать акцент не на расширении функционала базового класса, а на получении функций базового класса так как это охватывает больше ситуаций при использовании наследования. Получили функции - а дальше решаем, что с этим делать. Захотим, расширим или же просто заменим часть того, что уже было, а остальное оставим как есть.
0
|
||||
|
19495 / 10100 / 2461
Регистрация: 30.01.2014
Сообщений: 17,808
|
|
| 13.04.2022, 19:52 | |
|
Stas_Mak, Наследование - это выразительный механизм языка, позволяющий задавать отношение между типами (классами).
1) Если один тип (D), является разновидностью (is-a) другого (B), то используют публичное наследование. Рекомендую также ознакомиться с принципом подстановки Лисков. 2) Если один тип (D), реализован посредством другого (B) ( специальный случай отношения has-a), то используют приватное или защищенное наследование. При этом чаще всего отношение has-a моделируется через композицию членов данных класса, но приватное наследование позволяет описать специальные случаи такого отношения. Например, вот такой детский паровозик реализован посредством квадроцикла или, выражаясь более близким к формулировке has-a, имеет в основе квадроцикл. Совершенно понятно, что квадроцикл не особо подходит в качестве члена класса "паровозик", но и паровозик квадроциклом уже не является. Это именно тот случай, когда приватное наследование уместно.
0
|
|
|
0 / 0 / 0
Регистрация: 13.04.2022
Сообщений: 64
|
|
| 13.04.2022, 21:01 | |
|
в сути
0
|
|
| 13.04.2022, 21:01 | |
|
Помогаю со студенческими работами здесь
18
ovefrlow? ошибка в чем суть В чем вообще суть ошибки? Циклы while и for: в чем суть отличия? В чем суть этого задание? Поразрядные операции - в чем суть и применение? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи
и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
|