powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Помогите организовать иерархию классов!
8 сообщений из 8, страница 1 из 1
Помогите организовать иерархию классов!
    #33963474
otognan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здрастье! Вобщем нужна оптимальная иерархия для работы с нейросетями.
Проблема в том что не хочеца использовать множественное наследование.
Итак.
Есть СNeuroObject - корень.
От него исходят другие объекты, например СNeuron.
Надо создать поддержку визуализации этих объектов. То есть должна еще существовать реализация CGraphicNeuron. Причем система обращается к объектам для визуализации через некий базовый класс. Напрашивается решение:
1) создать CGraphicNeuroObject от СNeuroObject
2) CGraphicNeuron наследовать от CGraphicNeuroObject и от СNeuroObject

Возникает проблема с множественным наследованием: дважды наследуется СNeuroObject. Что делать?
...
Рейтинг: 0 / 0
Помогите организовать иерархию классов!
    #33963481
сикока
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не знаю что такое нейро сеть, но есть классическое решение задачи с созданием иерархии классов разных видов это
у базового класса видов создание абстрактных методов отображения и их перекрытие для подвидов, вот и все.

учебный год начался?%)
...
Рейтинг: 0 / 0
Помогите организовать иерархию классов!
    #33963492
otognan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Начался(@))
Дело в том что проблема в принципе не в методах, а некотором количестве графических данных, который нужны для визуализации и которые и планировал хранить в CGraphicNeuroObject..
Не грамотно както таскать эти данные в объектах, которые не требуют отображения, поэтому в базовом классе СNeuroObject их определять не надо
...
Рейтинг: 0 / 0
Помогите организовать иерархию классов!
    #33963512
сикока
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я ответа не знаю:)
множественное наследование на практике применить не приходилось.
но знаю, что натягивание структуры языка на физическую структуру обычно ничего кроме лишних проблем не дает, другими словами, возможно, правильней сделать прорисовку отдельно, иерархию отдельно.

что касается сказанного мной выше, можно создать ветвь отображаемых узлов, а ветвь неотображаемых. в начало ветви отображаемых узлов будет входить как раз этот график движок. Но это предположение, я не знаю что есть нейронная сеть, как много там типов узлов и т.п.
...
Рейтинг: 0 / 0
Помогите организовать иерархию классов!
    #33963515
сикока
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сикока
можно создать ветвь отображаемых узлов, а ветвь неотображаемых.


следует читать так:
можно создать ветвь отображаемых узлов, и ветвь неотображаемых.
...
Рейтинг: 0 / 0
Помогите организовать иерархию классов!
    #33963541
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну чтоб дважда не наследовался наследоваться надо виртуально. тогда папа будет точно один
Выглядит это так
сlass СNeuroObject {};
class CGraphicNeuroObject : public virtual СNeuroObject {};
class СNeuron : public virtual СNeuroObject {};
class CGraphicNeuron : public virtual CNeuron, public virtual CGraphicsNeuroObject {...};

Так можно продолжать до бесконечности, паттерн называется Stairs to hell.
Но ядумаю что решение в даннном случае не бесспорное, представтьте что вам придется создать еже один взгляд на вашу модель и тогда ваша жизнь сильно усложнится. Я бы построил параллельные иерархии и воспользовался ем-нибудь типа visitor или aciclic visitor.
Если вы не знаете паттернов то надо почитать Эрика Гамму со товарищи Паттерны проектирования(известны как Gang of Four), и Боба Мартина Быстрая разработка программ.
...
Рейтинг: 0 / 0
Помогите организовать иерархию классов!
    #33963683
otognan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я тут почитал... Виртуальное наследование же вроде никаких минусов не дает? Правильно?
И еще: я так понимаю в VC придется отказаться от возможности сериализации при таком наследовании?
...
Рейтинг: 0 / 0
Помогите организовать иерархию классов!
    #33964601
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Виртуальное наследование минусов не дает. Минусы возникают когда смешивают модель (в данном случае нейросеть) и взгляд на нее (возможность отображать), просто потому что взглядов может быть много и не следует это множество взглядов совмещать с моделью. А на счет VC - не знаю, я всю жизнь на UNIX'e
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Помогите организовать иерархию классов!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]