Originally Posted by
matsp
I'm not, because my functions are free functions, not class functions - the compiler is correct in it's suggestion for remedy. Also note that the functions you use for this should be static.
--
Mats
Now have a new strange problem... Anything suspicious about this class
Code:
// FleetMenu.h
class FleetMenu
{
public:
friend class ContractMenu;
FleetMenu();
void RunFleet();
// Menu functions
static void Exit(MenuContext &ctxt);
static void AddNewCar(MenuContext &ctxt);
static void DeleteCar(MenuContext &ctxt);
static void ShowFleetList(MenuContext &ctxt);
static void CreateContract(MenuContext &ctxt);
static void UpdateFleetFile(MenuContext &ctxt);
static void searchCarDetails(MenuContext &ctxt);
static void TitleDescription(MenuContext &ctxt);
static void ReadFleetFromFile(MenuContext &ctxt);
static void EditFleetContract(MenuContext &ctxt);
private:
typedef vector<Car> CarFleet;
typedef CarFleet::iterator FleetIterator;
private:
void SortAlpha();
static void Pause();
static void Clrscr();
void ProgramLimits();
void SetReturnDates(Date& dates);
double amountDue(int days, int rate);
Car& matchRightCar(FleetIterator iter);
void ShowExistingContract(string contractID);
FleetIterator find(FleetIterator&, FleetIterator&, CAR_MAKE);
private:
CarFleet fleet;
};
When i try to use it's members from it's source file [FleeMenu.cpp] i get errors. i.e..
Code:
#include "FleetMenu.h"
1.
void FleetMenu::TitleDescription(MenuContext &ctxt)
{
ProgramLimits(); // : error C2352: 'FleetMenu::ProgramLimits' : illegal call of non-static member function
}
2.
fleet.push_back(car); // : error C2228: left of '.push_back' must have class/struct/union
It's as if FleetMenu class is not visible to FleetMenu.cpp