Size: a a a

2020 August 16

🦊

🦊fox.cpp in C++ Together 2.0
Ну
источник

RM

Roy Mustang in C++ Together 2.0
Так как мы унаследованы от HFModule (абстрактного класса), то можем через него получить указатель на HFApp, а он хранит объекты всех классов от всех модулей, как я говорил ранее, 1 модуль - 1 класс
источник

RM

Roy Mustang in C++ Together 2.0
Вот мы у App запросили указатель и все, он у нас есть
источник

RM

Roy Mustang in C++ Together 2.0
Проблема с которой я столкнулся, это идейный кризис, как мне вот этот указатель теперь передавать в PluginTestA, 20 строка
источник

RM

Roy Mustang in C++ Together 2.0
Как видишь у этого модуля есть тестовый плагин (компонент), который хранится в HFModule (в абстрактном классе самого модуля)
источник

RM

Roy Mustang in C++ Together 2.0
в базовом классе ModuleTestA короче говоря
источник

🦊

🦊fox.cpp in C++ Together 2.0
Ты мне вот что скажи
источник

RM

Roy Mustang in C++ Together 2.0
Вот моя проблема в том, что мне нужна идея, как все реализовать так чтоб плагины ModuleTestA могли тоже получать эти указатели
источник

🦊

🦊fox.cpp in C++ Together 2.0
На кой хер тебе плагины
источник

RM

Roy Mustang in C++ Together 2.0
Но при этом, ты не должен создавать публичные методы в .hpp
источник

RM

Roy Mustang in C++ Together 2.0
🦊fox.cpp
На кой хер тебе плагины
Это как компоненты, раскладывать большую задачу на мелкие
источник

RM

Roy Mustang in C++ Together 2.0
Как в игровых движках, ты же видел наверняка
источник

RM

Roy Mustang in C++ Together 2.0
Там в основном компоненты они называются, здесь я решил их плагинами назвать
источник

RM

Roy Mustang in C++ Together 2.0
В игровых движках каждый компонент выполняет свою задачу, тут плагины делают тоже самое.
источник

🦊

🦊fox.cpp in C++ Together 2.0
Roy Mustang
Это как компоненты, раскладывать большую задачу на мелкие
У тебя есть миллиард других способов это делать, почему ты создал два уровня индирекции для этого и теперь жрешь кактус?
источник

RM

Roy Mustang in C++ Together 2.0
🦊fox.cpp
У тебя есть миллиард других способов это делать, почему ты создал два уровня индирекции для этого и теперь жрешь кактус?
Я жру кактус совсем не из-за индексаций
источник

RM

Roy Mustang in C++ Together 2.0
Я жру кактус потому что не хочу чтоб методы используемые внутри класса модуля вылазили в ModuleTestB если он хранит у себя указатель на ModuleTestA
источник

RM

Roy Mustang in C++ Together 2.0
Посмотри в HFApp
источник

RM

Roy Mustang in C++ Together 2.0
В папке Helena/Common
источник

RM

Roy Mustang in C++ Together 2.0
Видишь там методы Initialize и Finalize? Они в Private лежат
источник