Now in the main program, I'm getting a bunch of error C2228s (function must have a class/struct/union) for class Room, and all the Room identifiers are listed as undeclared.
For example,
Code:
charge = hotel.*room[rn].calculateBill(hotel.*room[rn].getNights(), hotel.*room[rn].getOccNum(), hotel.*room[rn].getBaseRate(), hotel.*room[rn].getAddRate());
In the above case, "left of '.calculateBill' must have class/struct/union." and "'room' : undeclared identifier"
Room.h
Code:
class Room {
private:
int occNum;
int nights;
int MaxOccNum;
double baseRate;
double addRate;
bool smoking;
public:
Room(void);
~Room(void);
Customer customer;
void setSmoking(int i, int s);
bool isOccupied();
bool isSmoking();
int getNights();
void setNights(int days);
int getOccNum();
void setOccNum(int ppl);
int getMaxOccNum();
void setMaxOccNum(int max);
double getBaseRate();
void setBaseRate(double rate);
double getAddRate();
void setAddRate(double add);
double calculateBill(int night, int occNum, double rate, double add);
void assignCustomer(string nm, string cc, bool emp);
void modify();
void clearRoom();
};
Room.cpp
Code:
Room::Room(void){
};
Room::~Room(void)
{
};
void Room::setSmoking(int i, int s)
{
if (i <= s)
smoking = true;
else
smoking = false;
return;
}
bool Room::isSmoking()
{
return smoking;
}
int Room::getNights() {return nights;};
void Room::setNights(int days)
{
nights = days;
return;
};
int Room::getOccNum() { return occNum; };
void Room::setOccNum(int ppl)
{
occNum = ppl;
return;
};
bool Room::isOccupied()
{
return (getOccNum() > 0);
}
double calculateBill(int night, int occNum, double base, double add)
{
double charge;
double addRate = add*(occNum-1);
charge = addRate+base;
charge = charge*night;
return charge;
}
//In case a room needs to be modified (e.g. add nights or occupants), this function enables that.
void Room::assignCustomer(string nm, string cc, bool emp)
{
customer.setName(nm);
customer.setCCNum(cc);
customer.setEmployee(emp);
return;
}
void Room::clearRoom()
{
customer.setName("");
customer.setCCNum("");
customer.setEmployee('N');
setOccNum(0);
setNights(0);
return;
}
int Room::getMaxOccNum()
{
return MaxOccNum;
}
void Room::setMaxOccNum(int max)
{
MaxOccNum = max;
return;
}
double Room::getBaseRate()
{
return baseRate;
}
void Room::setBaseRate(double rate)
{
baseRate = rate;
return;
}
double Room::getAddRate()
{
return addRate;
}
void Room::setAddRate(double add)
{
addRate = add;
return;
}