Код: Выделить всё
class BaseEngineSystem {
public:
BaseEngineSystem(std::shared_ptr engine) {
engine_ = engine;
}
void LogWrite(LogLevel logLevel, std::string message) {...}
private:
std::shared_ptr engine_;
}
class InputSystem : BaseEngineSystem {
InputSystem(std::shared_ptr engine) : BaseeEngineSystem(engine)
...
}
class RenderSystem : BaseEngineSystem {
RenderSystem(std::shared_ptr engine) : BaseEngineSystem(engine)
...
}
class Engine {
public:
Engine() {
input_ = std::make_shared(this);
...
}
~Engine() {...}
...
private:
std::shared_ptr input_;
std::shared_ptr render_;
...
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... pointers-c