add example of state pattern in C++

This commit is contained in:
2021-05-11 18:53:16 -04:00
parent d7a25a0efc
commit 1c78867d91
6 changed files with 212 additions and 0 deletions

View File

@@ -0,0 +1,13 @@
#include "state.hpp"
// Delegate calls from State->changeState to Car->changeState
void State::changeState(Car *c, State *s) { c->changeState(s);}
// Stopped state transitions
void Stopped::Start(Car *c) { changeState(c, Running::instance());}
void Stopped::Smash(Car *c) { changeState(c, Broken::instance());}
// Running state transitions
void Running::Stop(Car *c) { changeState(c, Stopped::instance());}
void Running::Smash(Car *c) { changeState(c, Burning::instance());}