Size: a a a

2021 February 22

Л

Л. Кап in supapro.cxx
Объектов
источник

Л

Л. Кап in supapro.cxx
В моем случае прямоугольников
источник

SH

Serhii Herashchenko in supapro.cxx
Л. Кап
Объектов
Object:
   Object* parent;
   Vector<Object*> childs
источник

AB

Aleksei Budyakov in supapro.cxx
Constantine Drozdov
От того, что концепты убираются из примера, они не перестают быть основным способом статического полиморфизма. Все примеры "как лучше, А или Б" бессмысленно обсуждать без конкретной задачи "в каком случае лучше" просто потому, что правильный ответ может быть эскобар
Смысл в том, что функционально для меня оба подхода выглядят одинаково. И я пытаюсь понять в чем существенные ограничения того или иного подхода.
источник

Л

Л. Кап in supapro.cxx
Serhii Herashchenko
Object:
   Object* parent;
   Vector<Object*> childs
Если так например вращать родителя, дочерние тоже вращаться будут относительно родителя?
источник

MK

Mikhail Kalugin in supapro.cxx
В том что из них можно засунуть в контейнер. В том, можно или нет дать готовую реализацию поведения (даже с состоянием, если хочется) извне в рантайме или нет. Композиция - собираем все в рантайме. Наследование - передаем всю иерархию указателями на базу. CRTP... Ну просто экзотическая техника - иногда полезно вместо миксинов, если базе нужен this потомка для чего-то.
источник

SH

Serhii Herashchenko in supapro.cxx
Л. Кап
Если так например вращать родителя, дочерние тоже вращаться будут относительно родителя?
Object:
   Object* parent;
   Vector<Object*> childs;
   Matrix44 transform;

   Matrix44 GetLocalTransform() { return transform; }
   Matrix44 GetGlobalTransform() { return transform * parent->GetGlobalTransform)(); }
источник

Л

Л. Кап in supapro.cxx
а Object это что?
источник

CD

Constantine Drozdov in supapro.cxx
Aleksei Budyakov
Смысл в том, что функционально для меня оба подхода выглядят одинаково. И я пытаюсь понять в чем существенные ограничения того или иного подхода.
Я все еще предлагаю начать с вопроса, почему в std нет этих примеров
источник

SH

Serhii Herashchenko in supapro.cxx
Л. Кап
а Object это что?
это твой обьект)
источник

SH

Serhii Herashchenko in supapro.cxx
обьект иерархии
источник

Л

Л. Кап in supapro.cxx
Это из сфмл?
источник

Л

Л. Кап in supapro.cxx
или это класс по идее?
источник

MK

Mikhail Kalugin in supapro.cxx
Aleksei Budyakov
Смысл в том, что функционально для меня оба подхода выглядят одинаково. И я пытаюсь понять в чем существенные ограничения того или иного подхода.
Что конкретно не понятно то?
источник

SH

Serhii Herashchenko in supapro.cxx
Л. Кап
Это из сфмл?
это то, что ты сам написать должен
источник

Л

Л. Кап in supapro.cxx
очень извиняюсь за свою тупость, но как?
источник

MK

Mikhail Kalugin in supapro.cxx
Aleksei Budyakov
Смысл в том, что функционально для меня оба подхода выглядят одинаково. И я пытаюсь понять в чем существенные ограничения того или иного подхода.
Миксины - ты просто собираешь поведение из универсальных кусочков. CRTP - ты почему-то решаешь делать то же что и компилятор с vtable вручную, классическое наследование - полагаешься во всем на правила языка. Композиция - то же, что и миксины, но в рантайме (если делать правильно)
источник

AB

Aleksei Budyakov in supapro.cxx
Mikhail Kalugin
Миксины - ты просто собираешь поведение из универсальных кусочков. CRTP - ты почему-то решаешь делать то же что и компилятор с vtable вручную, классическое наследование - полагаешься во всем на правила языка. Композиция - то же, что и миксины, но в рантайме (если делать правильно)
Вот у меня есть код где композиция трех полиморфных ( классическое наследование ) объектов которые реализуют что-то вроде паттерна Шаблонный метод. Я думал переписать на статический полиморфизм, но подобрать нужный способо никак не могу.
источник

MK

Mikhail Kalugin in supapro.cxx
Aleksei Budyakov
Вот у меня есть код где композиция трех полиморфных ( классическое наследование ) объектов которые реализуют что-то вроде паттерна Шаблонный метод. Я думал переписать на статический полиморфизм, но подобрать нужный способо никак не могу.
Попроубй все и остановись на том, который понравится (просто субъективно). Лучше чем уже есть все равно не будет, максимум - избавишся от vtable (заменив на свою собственную реализацию, и что из них лучше так сразу сказать сложно)
источник

AB

Aleksei Budyakov in supapro.cxx
Mikhail Kalugin
Попроубй все и остановись на том, который понравится (просто субъективно). Лучше чем уже есть все равно не будет, максимум - избавишся от vtable (заменив на свою собственную реализацию, и что из них лучше так сразу сказать сложно)
Благодарю за помощь. Попробую
источник