|
1 / 1 / 0
Регистрация: 10.05.2019
Сообщений: 42
|
|
Переопределение указателя на объект21.12.2025, 11:21. Показов 2220. Ответов 8
Метки нет (Все метки)
Добрый день, имеется несколько классов с одинаковыми интерфейсами (одинаковые наборы параметров конструкторов, одинаковые публичные функции-члены), но, естественно, с разными реализациями (общаются с разными внешними устройствами). В программе исходно создается указатель на объект одного из этих классов. Можно ли переназначить этот указатель на объект другого класса? Т.е. выбирать с объектом какого именно класса программа работает в данный момент.
0
|
|
| 21.12.2025, 11:21 | |
|
Ответы с готовыми решениями:
8
Перезаписать память начиная с указателя Bitmap[1] элементами начиная с указателя Bitmap[0] Написать обработчик исключений ситуации при преобразовании указателя на класс B до указателя на абстрактный класс А ... |
|
Модератор
13778 / 10971 / 6491
Регистрация: 18.12.2011
Сообщений: 29,256
|
||
| 21.12.2025, 14:27 | ||
|
Виртуальные функции вызываются именно в соответствии с тем, каким именно классом инициализирован указатель на базовый класс.
0
|
||
|
1 / 1 / 0
Регистрация: 10.05.2019
Сообщений: 42
|
|
| 21.12.2025, 15:51 [ТС] | |
|
Спасибо, буду разбираться
0
|
|
|
фрилансер
6468 / 5683 / 1131
Регистрация: 11.10.2019
Сообщений: 15,157
|
||||||
| 21.12.2025, 16:44 | ||||||
|
VvictorRr, https://onlinegdb.com/o0_cNKpT2
Я Лампа! Горю-свечу. Темноты хочу.
0
|
||||||
|
1 / 1 / 0
Регистрация: 10.05.2019
Сообщений: 42
|
|
| 22.12.2025, 09:04 [ТС] | |
|
Спасибо за пример. Непонятно вот что. Начать с того, что классы Mixer и Lamp, несмотря на то, что имеют общего предка Device, могут иметь, вообще говоря, разные размеры (sizeof(Mixer)!=sizeof(Device); sizeof(Lamp)!=sizeof(Device)). Почему, в таком случае, не вызывает ошибки то, что на них указывает указатель типа Device ?
0
|
|
|
фрилансер
6468 / 5683 / 1131
Регистрация: 11.10.2019
Сообщений: 15,157
|
|
| 22.12.2025, 09:33 | |
|
0
|
|
|
Вездепух
13190 / 6825 / 1822
Регистрация: 18.10.2014
Сообщений: 17,272
|
||
| 22.12.2025, 09:44 | ||
|
Указатель ничего не знает ни о каких классах Mixer и Lamp. С точки зрения указателя, он указывает на Device, Device и именно Device. А то, что эти Device на самом деле являются частью Mixer и Lamp - указателю нет до этого никакого дела.То, что при вызове виртуальных методов класса Device вызываются правильные методы классов Mixer и Lamp - это совсем не потому, что указатель что-то знает о фактических классах, на которые указывает. Это заслуга механизмов реализации полиморфизма (т.е. вызовов виртуальных методов), которые к самому указателю никакого отношения не имеют.
0
|
||
|
1 / 1 / 0
Регистрация: 10.05.2019
Сообщений: 42
|
|
| 22.12.2025, 20:31 [ТС] | |
|
Спасибо. Займемся полиморфизьмом.
0
|
|
| 22.12.2025, 20:31 | |
|
Помогаю со студенческими работами здесь
9
Преобразование кода без указателя в код с использованием указателя
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|