|
|
|
Помогите организовать иерархию классов!
|
|||
|---|---|---|---|
|
#18+
Здрастье! Вобщем нужна оптимальная иерархия для работы с нейросетями. Проблема в том что не хочеца использовать множественное наследование. Итак. Есть СNeuroObject - корень. От него исходят другие объекты, например СNeuron. Надо создать поддержку визуализации этих объектов. То есть должна еще существовать реализация CGraphicNeuron. Причем система обращается к объектам для визуализации через некий базовый класс. Напрашивается решение: 1) создать CGraphicNeuroObject от СNeuroObject 2) CGraphicNeuron наследовать от CGraphicNeuroObject и от СNeuroObject Возникает проблема с множественным наследованием: дважды наследуется СNeuroObject. Что делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 19:14 |
|
||
|
Помогите организовать иерархию классов!
|
|||
|---|---|---|---|
|
#18+
не знаю что такое нейро сеть, но есть классическое решение задачи с созданием иерархии классов разных видов это у базового класса видов создание абстрактных методов отображения и их перекрытие для подвидов, вот и все. учебный год начался?%) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 19:24 |
|
||
|
Помогите организовать иерархию классов!
|
|||
|---|---|---|---|
|
#18+
Начался(@)) Дело в том что проблема в принципе не в методах, а некотором количестве графических данных, который нужны для визуализации и которые и планировал хранить в CGraphicNeuroObject.. Не грамотно както таскать эти данные в объектах, которые не требуют отображения, поэтому в базовом классе СNeuroObject их определять не надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 19:31 |
|
||
|
Помогите организовать иерархию классов!
|
|||
|---|---|---|---|
|
#18+
я ответа не знаю:) множественное наследование на практике применить не приходилось. но знаю, что натягивание структуры языка на физическую структуру обычно ничего кроме лишних проблем не дает, другими словами, возможно, правильней сделать прорисовку отдельно, иерархию отдельно. что касается сказанного мной выше, можно создать ветвь отображаемых узлов, а ветвь неотображаемых. в начало ветви отображаемых узлов будет входить как раз этот график движок. Но это предположение, я не знаю что есть нейронная сеть, как много там типов узлов и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 19:44 |
|
||
|
Помогите организовать иерархию классов!
|
|||
|---|---|---|---|
|
#18+
сикока можно создать ветвь отображаемых узлов, а ветвь неотображаемых. следует читать так: можно создать ветвь отображаемых узлов, и ветвь неотображаемых. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 19:46 |
|
||
|
Помогите организовать иерархию классов!
|
|||
|---|---|---|---|
|
#18+
Ну чтоб дважда не наследовался наследоваться надо виртуально. тогда папа будет точно один Выглядит это так с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), и Боба Мартина Быстрая разработка программ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 20:00 |
|
||
|
Помогите организовать иерархию классов!
|
|||
|---|---|---|---|
|
#18+
Я тут почитал... Виртуальное наследование же вроде никаких минусов не дает? Правильно? И еще: я так понимаю в VC придется отказаться от возможности сериализации при таком наследовании? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 21:52 |
|
||
|
Помогите организовать иерархию классов!
|
|||
|---|---|---|---|
|
#18+
Виртуальное наследование минусов не дает. Минусы возникают когда смешивают модель (в данном случае нейросеть) и взгляд на нее (возможность отображать), просто потому что взглядов может быть много и не следует это множество взглядов совмещать с моделью. А на счет VC - не знаю, я всю жизнь на UNIX'e ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 11:54 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=337&tid=2030574]: |
0ms |
get settings: |
8ms |
get forum list: |
22ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 363ms |

| 0 / 0 |
