|
0 / 0 / 0
Регистрация: 19.04.2016
Сообщений: 8
|
||||||
Наследование. Не могу понять элементарную вещь23.07.2019, 15:33. Показов 1189. Ответов 7
Метки нет (Все метки)
Допустим есть родительский класс и производный. Сейчас мы не затрагиваем полиморфизм.
Так или иначе присвоение указателю базового класса адреса объекта производного класса должно быть возможным. А не понимаю я следующее.: Почему для такого присвоения производный класс обязательно должен наследоваться как public или protected? Вот простой пример (без смысловой нагрузки, задача просто скомпилированть):
Ведь операция присваивания выполняется для указателя и затрагивает только адреса. Какие из скрытых методов (или перегруженных операторов) должны быть выполнены и не могу этого сделать из-за private наследования? По-моему никакие, ведь мы имеем дело с указателем, а не самим объектом. А в чем тогда причина?
0
|
||||||
| 23.07.2019, 15:33 | |
|
Ответы с готовыми решениями:
7
Объясните умственно отсталому как сделать элементарную вещь в списке Не могу понять виртуальное наследование Наследование класов. Не могу понять в чем ошибка |
|
285 / 176 / 21
Регистрация: 16.02.2018
Сообщений: 666
|
|
| 23.07.2019, 15:52 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 19.04.2016
Сообщений: 8
|
|
| 23.07.2019, 16:03 [ТС] | |
|
Ну, да. Давно регистрировался, чтоб ссылки работали. Ничего не постил.
0
|
|
|
96 / 82 / 22
Регистрация: 19.10.2013
Сообщений: 485
|
||||||||||||||||
| 23.07.2019, 16:37 | ||||||||||||||||
|
Причина в том, что вы не можете вызывать приватные методы родительского класса. А конструктор - это тоже метод.
Кажется я вопрос по диагонали прочитал, теперь понял, но объяснить не могу ![]() Если Based будет унаследован приватно, то разумеется его производные не могут быть кастануты в Based, он же приватный =) это как пытаться достать сметану из банки с неизвестным содержимым, сметаны там может и не быть. А почему банка непрозрачная? А потому что так задумали производители. и если вы наследуете приватно класс, значит делаете это из каких-то конкретных соображений. Например, чтобы нельзя было случайно вызвать методы базового класса
0
|
||||||||||||||||
|
0 / 0 / 0
Регистрация: 19.04.2016
Сообщений: 8
|
||||||||||||||||
| 23.07.2019, 16:38 [ТС] | ||||||||||||||||
|
WxMaper, такие простые вещи я вроде как знаю, я немного не об этом, есть нюанс.
Этот код компилируется:
И почему присваивание указателю адреса делает код некомпилируемым? Ведь в случае с указателями ни конструкторы, ни перегруженные операторы присваивания для класса Based, не выполняются, т.к. мы имеем дело с адресами, а не самими объектами.
0
|
||||||||||||||||
|
96 / 82 / 22
Регистрация: 19.10.2013
Сообщений: 485
|
|
| 23.07.2019, 16:43 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 19.04.2016
Сообщений: 8
|
||||||||
| 23.07.2019, 17:03 [ТС] | ||||||||
|
Несмотря на то, что класс наследуется приватно, через строку инициализации производного класса мы лишь передаем параметр в базовый класс, а сам конструктор базового класса выполняется в своем (базовом классе), поэтому определение объекта.
Спасибо.
0
|
||||||||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
||
| 25.07.2019, 09:57 | ||
|
Все дело в том, какое отношение между классами задает то или иное наследование. * Приватное наследование обозначает отношение "реализован посредством". Например: автомобиль реализован посредством колес (естественно не только, но это пример, который должен быть понятен всем, даже непрограммистам). * Публичное наследование обозначает отношение "является разновидностью". Например: ГАЗ-13 «Чайка» является разновидностью автомобиля. Когда вы кастите указатель, вы применяете реализованное отношение к объектам. Т.е., если совсем буквально, то своим кастом к базовому вы говорите: газ-13 - это автомобиль. Но вы не можете сказать, "автомобиль - это колесо", потому, что это не так.
0
|
||
| 25.07.2019, 09:57 | |
|
Помогаю со студенческими работами здесь
8
Стек на основе массива структур - эт как понять читаю литературу и не могу понять! Не могу понять одну вещь в ряде Лорана
не могу догнать одну вещь Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|