class State; class Context { public: Context() { state = nullptr; } void setState(State *state) { this->state = state; } State*getState() { return this->state; } private: State *state; };