I am trying to implement state design pattern but i keep getting base class undefined error. These are my files. MainClass.h
#pragma once
#include "State1.h"
#include "State.h"
class State;
class MainClass
{
public:
MainClass();
~MainCLass();
void changeState(AuctionState* newState);
private:
State *CurrentState;
};
In my MainClass.cpp class, the changestate method is
void MainClass::changeState(State * newState)
{
delete CurrentState;
CurrentState = newState;
}
State.h
#pragma once
#include "MainClass.h"
class MainClass;
class AuctionState
{
public:
virtual ~AuctionState();
virtual void run(MainClass& context);
};
State1.h
#pragma once
#include "State2.h"
#include "State.h"
class State2;
class MainState :
public AuctionState
{
public:
MainState();
~MainState();
};
State1.cpp
#include "State1.h"
MainState::MainState()
{
}
void run(MainClass& context)
{
//DO Stuff
context.changeState(new State2);
}
MainState::~MainState()
{
}
All the other state files are implemented the same way