7 / 6 / 1
Регистрация: 29.10.2016
Сообщений: 175
|
||||||
1 | ||||||
Некорректный указатель на абстрактный класс28.05.2020, 14:36. Показов 378. Ответов 6
Метки нет (Все метки)
Доброго времени суток.
Для удобства создал пример. Понимаю, что ошибка в функции getChild(). C указателем Parent* эта функция отрабатывает правильно и возвращает указатель на SndChild. Но! Я теряю возможность использовать функцию setField(). А это необходимо. Как можно исправить это? Есть важное условие: Разрешено полностью изменять функцию getChild() и определение функции update() в классе SndChild, все остальное изменять крайне не желательно. Так вот, какие будут у Вас мысли?
0
|
28.05.2020, 14:36 | |
Ответы с готовыми решениями:
6
Указатель на абстрактный шаблонный класс Указатель на бызовый абстрактный класс. Что такое указатель на абстрактный класс? Скопировать объект, на который ссылается указатель на абстрактный класс |
El. Psy. Congroo.
110 / 92 / 32
Регистрация: 09.01.2018
Сообщений: 344
|
|
28.05.2020, 15:26 | 2 |
Добавить чистый виртуальный метод setField в базовый класс.
0
|
7 / 6 / 1
Регистрация: 29.10.2016
Сообщений: 175
|
||||||
28.05.2020, 15:34 [ТС] | 3 | |||||
Это запрещено.
Добавлено через 6 минут Там еще в самом начале добавьте строчку:
0
|
6091 / 3449 / 1402
Регистрация: 07.02.2019
Сообщений: 8,769
|
|
28.05.2020, 15:54 | 4 |
Определение этого метода должно находиться после определения класса Container
Добавлено через 1 минуту Может лучше дать контейнеру решать, по какому ID у него лежит указатель на нужного вам потомка?
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||
28.05.2020, 16:01 | 5 | |||||
ты же уже указал тип объекта, который тебе нужен.
зачем нужен ещё какой то дополнительный айдишник?
не очень понятно: нафига ты решил использовать юник_птр?
1
|
7 / 6 / 1
Регистрация: 29.10.2016
Сообщений: 175
|
|
28.05.2020, 16:03 [ТС] | 6 |
1. Можно, а можно объявить в самом начале.
2. В настоящем проекте контейнер сам решает, просто хотелось максимально упростить пример, чтобы не пришлось долго его изучать. Экономлю ваше время.
0
|
6091 / 3449 / 1402
Регистрация: 07.02.2019
Сообщений: 8,769
|
||||||
28.05.2020, 16:11 | 7 | |||||
Я про определение. Вы вызываете метод класса, который не объявлен. Вы не можете использовать неполный тип, кроме как в качестве ссылок/указателей и в объявлениях.
Добавлено через 4 минуты Battary, пример:
1
|
28.05.2020, 16:11 | |
28.05.2020, 16:11 | |
Помогаю со студенческими работами здесь
7
Создание объекта через указатель на базовый абстрактный класс Создать абстрактный тип данных - класс вектор, который имеет указатель на long, число элементов и переменную состояния Класс: Разработать абстрактный класс класс Point для задания координаты... Буст сериализация. указатель на абстрактный базовый класс без конструктора по умолчанию Как создать указатель на абстрактный класс для дальнейшего помещения в список? Класс: Формальным параметром метода должна быть ссылка на абстрактный класс... Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |