I have a quick question for those who have experience coding their game engine and such. I was wondering what a better approach would be when designing my own game engine. Right now I plan on having different "subsystems" for example a event system and a graphics system (I plan on including more later on and they may or may not contain their own hierarchy). My question is should my engine class inherit these systems or should I make each system a member of the engine class or is there another proper way of structuring my engine? Whatever approach I wish to choose, I want it to be modular yet efficient.
tl;dr: What is the proper architecture for a game engine with subsystems in C++?