title: State pattern - c++
body: <p>Im trying to implement a Finite State Machine with the State Design Pattern, im very new to c++ and a beginner programmer in general. includes and header files confuse me and I'm not quite sure how to correctly set up this project. I probably should start with something else but I don't really have a choice.</p>
  
  <p>The goal for the machine is to read a char and, depending on the State, do something different.</p>
  
  <p>This is the class layout i thought of:</p>
  
  <pre><code>Machine.h
  
  class Machine{
     void setCurrentState(State s);
     State currentState;
  }
  
  State.h
  
  class State{
     virtual void read(char c, Machine* m) = 0;
  }
  
  (Should i make a header file for each derived class?)
  
  Initial.h
  
  class Initial: public State{
     void read(char c, Machine* m){
        m-&gt;setCurrentState(new SomeState());
     }
  }
  </code></pre>
  
  <p>I tried to do it that way but I'm confused on what I should include where. I'm getting, depending on which way I do it wrong errors from type not defined to undefined reference vtable. Maybe you guys could help me set this up correct and get the linking on point, id appreciate it a lot.</p>