struct NameC { int increment() const { return 0; } }; struct CallofDuty { CallofDuty(int) {} }; struct Game { CallofDuty *p; Game(CallofDuty *p_) : p(p_) {} void launch() const {} ~Game() { delete p; } }; NameC Name; int main(int argc, char **argsv) { Game game = new CallofDuty(Name.increment()); game.launch(); }