c++ inheritance expected class name before token

Halo guys i have error message expected-class name before "{" token
here is my code
////////////////////////////////////////////////////////////////////

#ifndef COCKTAILMACHINE_H
#define COCKTAILMACHINE_H
#include "Cocktail.h"
#include "Ingredient.h"
#include "Dispenser.h"
#include "CocktailSimulator.h"
#include <fstream>
#include <vector>
#include <iostream>
#include <cstdlib>
#include <string>


using namespace std;

class CocktailMachine : public CocktailSimulator // <----- ERROR HERE
{
public :
CocktailMachine();
virtual ~CocktailMachine();

//Funktion
void makeCocktail(int);

//setter
void setCocktails(Cocktail*);

//getter
vector<Ingredient*> getIngredients();
vector<Dispenser*> getDispensers();
vector<Cocktail*> getCocktails();

private:

Ingredient* ingredientObj;
Dispenser* dispenserObj;
Cocktail* cocktailObj;
vector<Ingredient*> ingredients;
vector<Dispenser*> dispensers;
vector<Cocktail*> cocktails;
};

#endif // COCKTAILMACHINE_H

//////////////////////////////////////////////////////////////////////
and here is my CocktailSimulator

/////////////////////////////////////////////////////////////////////

#ifndef COCKTAILSIMULATOR_H
#define COCKTAILSIMULATOR_H
#include "CocktailMachine.h"


class CocktailSimulator
{
public:
virtual void MakeCocktail(Cocktail* ) = 0;
//Funktion
virtual void makeCocktail(int) = 0;

//setter
virtual void setCocktails(Cocktail*) = 0;

//getter
virtual vector<Ingredient*> getIngredients() = 0;
virtual vector<Dispenser*> getDispensers() = 0;
virtual vector<Cocktail*> getCocktails() = 0;
private:
};

#endif // COCKTAILSIMULATOR_H
///////////////////////////////////////////////////////////////////

can someone help me ?
i already put #include "CocktailSimulator.h" in class CocktailMachine but still get error message.
The problem is that you have a circular dependency.

1. CocktailSimulator.h includes CocktailMachine.h.
2. CocktailMachine.h tries to include CocktailSimulator.h but the include guard prevents the content of CocktailSimulator.h from being included.
3. CocktailMachine.h tries to define CocktailMachine as a subclass of CocktailSimulator but that doesn't work because CocktailSimulator has not yet been defined.

The solution is to not include CocktailMachine.h from CocktailSimulator.h.
Last edited on
thx you sir its work now
Topic archived. No new replies allowed.