|
0 / 0 / 0
Регистрация: 18.09.2018
Сообщений: 4
|
|
Восходящее преобразование массива производного класса к родительскому?03.01.2020, 22:54. Показов 7450. Ответов 114
Есть два класса base_Class(родитель) и derived_Class(потомок)
Есть некая виртуальная функция в base_Class которая принимает в качестве параметра массив объектов класса f(base_Class **mass) Чтобы воспользоваться данной функцией для производного класса, необходимо привести массив производного класса к массиву родительского Массивы: base_Class *baseMass[100], derived_Class *derivedMass[100] Как произвести такое приведение типов?
0
|
|
| 03.01.2020, 22:54 | |
|
Ответы с готовыми решениями:
114
Восходящее преобразование Восходящее преобразование, объяснить код |
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
||
| 07.01.2020, 00:21 | ||
|
1) Оба операнда arithmetic or unscoped enumeration type. 2) Один из операндов указатель, а другой integral or unscoped enumeration type (наш случай). Т.е. у нас может быть только P + n, где n - integral or unscoped enumeration type.
0
|
||
|
Комп_Оратор)
|
|||
| 07.01.2020, 00:32 | |||
|
К тому же тест выделенный в цитате (см. ссылку) упоминает оба
И ограничение на адресную арифметику (пусть даже наш случай P+n или Q+n) выделены именно для типов а не указателей иерархии. Больше вопросы о том зачем Q не принимаю.
0
|
|||
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
||||
| 07.01.2020, 00:38 | ||||
|
Ну, rat0r говорил что нарушение если: X* xp - xp это glvalue с типом X*.А xp->f() это попытка доступа к объекту (чтения) с типом Y.А надо было, что бы чтение было с типом Y*? (я там уже кидал вроде как "верный" вариант) Добавлено через 3 минуты
1
|
||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||||||||
| 07.01.2020, 00:40 | |||||||||||||
|
смотри:
и уже только затем засовывает результат преобразования в указатель pДобавлено через 1 минуту я подозреваю что он имел ввиду это: Восходящее преобразование массива производного класса к родительскому?
0
|
|||||||||||||
|
285 / 176 / 21
Регистрация: 16.02.2018
Сообщений: 666
|
|||
| 07.01.2020, 00:53 | |||
*xpp это lvalue с типом X*, которое обозначает объект yp типа Y* (т.к. у xpp значение "указатель на объект yp").Когда к этому подвыражению применяется lvalue-to-rvalue conversion, происходит чтение значения обозначаемого объекта yp. Чтение — это доступ. И он происходит через lvalue с типом, который не является similar to тип, который это lvalue обозначает.Добавлено через 3 минуты
1
|
|||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||
| 07.01.2020, 00:59 | |||||||
|
подозревать я начал уже вот здесь: Восходящее преобразование массива производного класса к родительскому?
0
|
|||||||
|
285 / 176 / 21
Регистрация: 16.02.2018
Сообщений: 666
|
|||
| 07.01.2020, 01:04 | |||
|
0
|
|||
|
Комп_Оратор)
|
||||||||
| 07.01.2020, 01:40 | ||||||||
|
Там есть момент о котором никто почему-то не говорит. Azazel-San, обратите внимание.
Это справедливости ради - имея ввиду цитату. Не для того чтобы выцепить неудобно склизкий момент.
0
|
||||||||
|
285 / 176 / 21
Регистрация: 16.02.2018
Сообщений: 666
|
|||||
| 07.01.2020, 03:44 | |||||
Base будут вызваны их родные деструкторы Base::~Base.Base от Derived наследуется, что ли?
0
|
|||||
|
Комп_Оратор)
|
|||||||
| 07.01.2020, 11:42 | |||||||
|
Теперь посовещайтесь и приведите наиболее яркие мои слова, которые свидетельствуют о том, что мне вас следует называть на ты. Или что меня много. Или что по русски, обращение на ты свойственно нормальным людям, которые друг друга не знают. А иной раз вы цитируете гораздо меньше чем достаточно, чтобы не только понять за чем вы это цитируете, а и найти релевантное место. Например: Я покажу как надо:
0
|
|||||||
|
285 / 176 / 21
Регистрация: 16.02.2018
Сообщений: 666
|
|
| 07.01.2020, 16:41 | |
|
0
|
|
|
Комп_Оратор)
|
||||||||
| 07.01.2020, 19:55 | ||||||||
|
Когда я сам писал НТД пришлось так много пообщаться с нормативщиками, что приходя домой я говорил жене "необходимо предусмотреть наличие кипятка для приготовления чая". Это был кошмар. Но я научился понимать язык на котором пишут документы на основании которых могут решаться споры между проэктировщиком и производителем и/или ими обоими или кем-то из них и потребителем при авариях с нанесением ущерба и/или человеческими жертвами. Там где их пишут, понимают что нормативный текст это нормативная лексика, а нормативный документ это всё что в нём есть. Это текст, графика, таблицы и пр. Там вот за такую фразу секут пониже спины:
Однако эта фраза написана не тем комму следует писать НТД. Потому что фраза:
Кстати об английском языке. Вот пословица (она не единственная в своём роде, но подходит к случаю) :
0
|
||||||||
|
285 / 176 / 21
Регистрация: 16.02.2018
Сообщений: 666
|
|
| 08.01.2020, 01:43 | |
|
IGPIGP, твой поток сознания неиссякаем.
0
|
|
|
Комп_Оратор)
|
||||||
| 08.01.2020, 03:24 | ||||||
|
GoshaRubi, вот так и живём. Вот ещё вариант. Особо извращённый. Класс обёртка не понадобился в данном разе. Но не пропадать же добру. Шаблон не слишком сокращает код поскольку написан для конкретных прототипов методов - void(void)... Но всё равно чуть проще чем перегружать всё и вся вручную:
0
|
||||||
|
285 / 176 / 21
Регистрация: 16.02.2018
Сообщений: 666
|
||
| 08.01.2020, 23:14 | ||
|
1
|
||
| 08.01.2020, 23:14 | |
|
Восходящее и нисходящее преобразование (Upcasting and Downcasting) Неявное восходящее преобразование при защищенном/закрытом наследовании Как сложить объект базового класса с объектом производного(наследуемого класса)
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|