Here's my problem
Code:
#ifndef MENUCONTEXT_H
#define MENUCONTEXT_H
#include "FleetMenu.h"
// Class MenuContext
class MenuContext
{
public:
bool fquit;
FleetMenu *menuPrt; // NB ** Errors below are related to this line
MenuContext(FleetMenu *m) : fquit(false), menuPtr = m {}
~MenuContext() {};
};
typedef void (*MenuFunc)(MenuContext &ctxt);
#endif
Code:
#ifndef FLEETMENU_H
#define FLEETMENU_H
#include "Menu.h"
class FleetMenu
{
public:
FleetMenu();
void RunFleet();
// Menu functions
static void Exit(MenuContext &ctxt);
private:
typedef vector<Car> CarFleet;
typedef CarFleet::iterator FleetIterator;
private:
CarFleet fleet;
};
#endif
Code:
// Class menu
#ifndef MENU_H
#define MENU_H
#include "MenuItem.h"
class Menu
{
private:
struct MenuNode {
MenuNode *next;
MenuItem *item;
};
MenuNode *head;
MenuNode *tail;
public:
Menu();
~Menu();
void addMenu(std::string s, char c, MenuFunc f);
void choose(MenuContext &ctxt);
};
#endif
Code:
// Class: Menuitem
#ifndef MENUITEM_H
#define MENUITEM_H
#include "MenuContext.h"
using namespace std;
class MenuItem
{
private:
std::string descr;
char choice;
MenuFunc func;
public:
MenuItem(const std::string &s, char c, MenuFunc f);
~MenuItem();
void print();
std::string whiteSpace(int slenght, char space);
void doMenu(MenuContext &ctxt);
bool isChoice(char c);
};
#end
Code:
// Errors
// : error C2143: syntax error : missing ';' before '*'
// : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
// : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
// : error C2143: syntax error : missing ')' before '*'
// etc
Mostly these errors are linked to scope