|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
07.12.2018, 09:35 | #1 |
Новичок
Джуниор
Регистрация: 07.12.2018
Сообщений: 6
|
Множественное наследование
Всем привет.
Не могу понять следующий подход. Объясните немного, дальше я сам разберусь. Есть класс данных Data. Есть абстрактный класс Node со свойствами next, prev. На их основе создан класс DataNode. То есть class DataNode : public Node, public Data Создаю класс List. Но есть условие, в классе List входные, выходные типы могут быть только Node. И работать внутри функций я могу только с Node. Но передавать в функции класса List должен тип DataNode. А теперь вопрос: Как я из класса List, могу работать с данными класса DataNode, если получаемый тип сделан Node. При создании кода компилятор не увидит же ничего, что не определено в классе Node. Значить нужно создать виртуальные функции работы с данными. Но ведь класс Node не знает о классе Data. Как это реализуется? Последний раз редактировалось Wurgengel; 07.12.2018 в 09:54. |
07.12.2018, 09:47 | #2 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
А множественное наследование причем?
Вообще DataNode не нужен, не надо смешивать так. Списку должно быть пофиг что хранить, Data нужен только клиенту снаружи. Для этого template используют, смотрите на std::list<int>, std::list<Data> https://en.cppreference.com/w/cpp/container/list
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
07.12.2018, 09:55 | #3 | |
Новичок
Джуниор
Регистрация: 07.12.2018
Сообщений: 6
|
Цитата:
Но это задание от препода. Он хочет вот так и все тут. з.ы. Подправил, при чем множественное. На их основе создан класс DataNode. То есть class DataNode : public Node, public Data |
|
07.12.2018, 10:51 | #4 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,759
|
А зачем в вашем контейнере работа с Data?
|
07.12.2018, 11:03 | #5 |
Новичок
Джуниор
Регистрация: 07.12.2018
Сообщений: 6
|
|
07.12.2018, 11:06 | #6 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,759
|
Так это не задача контейнера, а сторонняя функция, зная о DataNode, может и кастануть.
|
07.12.2018, 11:30 | #7 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
|
07.12.2018, 11:45 | #8 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
|
07.12.2018, 13:07 | #9 |
Новичок
Джуниор
Регистрация: 07.12.2018
Сообщений: 6
|
|
07.12.2018, 13:09 | #10 |
Новичок
Джуниор
Регистрация: 07.12.2018
Сообщений: 6
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Множественное наследование | RAFA91 | Общие вопросы .NET | 18 | 05.10.2015 13:53 |
Множественное наследование | Алексей201 | Visual C++ | 4 | 16.12.2013 04:35 |
Множественное наследование | midiss | Visual C++ | 2 | 31.05.2013 12:52 |
Множественное наследование | coNsept | Общие вопросы C/C++ | 5 | 12.06.2012 17:18 |
[с++] Множественное наследование | huichos | Общие вопросы C/C++ | 3 | 16.12.2011 18:25 |