|
0 / 0 / 0
Регистрация: 16.05.2020
Сообщений: 3
|
||||||
Создание экземпляра заранее не известного класса11.10.2020, 02:39. Показов 2546. Ответов 8
Метки нет (Все метки)
Доброго времени суток, столкнулся с проблемой, помогите пожалуйста.
Есть класс Weapon и наследуемые от него Sword, Bow, Axe ... Нужно создать новый экземпляр одного из наследников. Но заранее не известно какого. Узнаю какой именно класс нужно создать получая его имя. Выглядит это примерно так
Через switch думал проработать все варианты просто по названию, но такой подход кажется мне не верным.
0
|
||||||
| 11.10.2020, 02:39 | |
|
Ответы с готовыми решениями:
8
Создание экземпляра класса-наследника для переменной с типом базового класса
Создание экземпляра класса |
|
Добрый пёс
120 / 86 / 37
Регистрация: 13.09.2020
Сообщений: 254
|
||||||
| 11.10.2020, 09:08 | ||||||
|
Надо создавать рандомно?
Тогда switch. Если фабричный метод задействован, то
0
|
||||||
|
1849 / 1191 / 501
Регистрация: 14.10.2018
Сообщений: 3,216
|
||||||
| 11.10.2020, 09:21 | ||||||
Сообщение было отмечено Anma как решение
Решение
Anma, в данной задаче надо учитывать 2 фактора:
1) ссылка, через которую будете работать с этим классом - будет базовая (Weapon) 2) список конструкторов класса-наследника Если взять самый просто вариант (базовый конструктор по умолчанию), то
1
|
||||||
|
Добрый пёс
120 / 86 / 37
Регистрация: 13.09.2020
Сообщений: 254
|
|
| 11.10.2020, 09:42 | |
|
Enifan, а его потом даункастить можно будет?
0
|
|
|
1849 / 1191 / 501
Регистрация: 14.10.2018
Сообщений: 3,216
|
|
| 11.10.2020, 09:56 | |
|
0
|
|
|
Добрый пёс
120 / 86 / 37
Регистрация: 13.09.2020
Сообщений: 254
|
||||||
| 11.10.2020, 10:10 | ||||||
|
Enifan, это действие, противоположное апкасту.
![]() (Попытка, иногда успешная) приведения переменной к классу-потомку. Добавлено через 4 минуты Вот что я имею в виду:
1
|
||||||
|
1849 / 1191 / 501
Регистрация: 14.10.2018
Сообщений: 3,216
|
||||||||||||
| 11.10.2020, 10:22 | ||||||||||||
Сообщение было отмечено Anma как решение
Решение
Blasphemie, ссылка у нас базовая (Weapon), а объект - тот что хотели (Sword или Bow). Классический полиморфизм. Возможно ли сделать и ссылку как и объекта - нет, но при правильной иерархии нам и не надо, ведь полиморфизм для того и придумали.
object не знает таких методов, как RemoveНо, у нас есть базовый класс с virtual-методами. Вот через них и будем работать
2
|
||||||||||||
|
Добрый пёс
120 / 86 / 37
Регистрация: 13.09.2020
Сообщений: 254
|
||
| 11.10.2020, 10:40 | ||
|
Теперь я знаю как правильно, но иногда по привычке таки даункастом пользуюсь. Я собака, мне можно.
0
|
||
|
0 / 0 / 0
Регистрация: 16.05.2020
Сообщений: 3
|
|
| 11.10.2020, 14:37 [ТС] | |
|
Спасибо огромное
0
|
|
| 11.10.2020, 14:37 | |
|
Помогаю со студенческими работами здесь
9
Создание экземпляра класса Создание нового экземпляра дочернего класса из экземпляра базового Создание экземпляра класса, разрушение экземпляра класса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|