We are practicing friend functions this week. It seemed pretty easy when we were studying this but when I tried to compile it, it gave me an error and I have tried tweaking it but I am still at a lost.
The error is saying
"(159): error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'void' (or there is no acceptable conversion)"
Any help would be greatly appreciated.
Thanks in advance!!
//Lynette Wilkins //Week 11 //Program that transers a guest from one room to another room //Lynette Wilkins //Week 8 #include <iostream> #include <iomanip> #include <string> using namespace std; class HotelRoom { friend int Transfer(HotelRoom&, HotelRoom&); private: char room_num[3]; //Character array that stores a 3-character room number char transroom_num; char* guest; //Character pointer,which stores the name of the guest occupying the room int room_cap; int occup_stat; double daily_rt; int tranfer_room; public: HotelRoom(char room[], char* g_p, int roomcap, int occup, double rate = 89.00); ~HotelRoom(); void Display_Number(); //Displays room number and add the method Display_Guest() int Get_Capacity(); int Get_Status(); double Get_Rate(); int Change_Status(int); double Change_Rate(double); void Display_Guest(); }; HotelRoom::HotelRoom(char room[], char* g_p, int roomcap,int occup, double rate ) { strcpy(room_num, room); //copy first argument into room_num[] guest = new char[strlen(g_p) + 1]; //reserve space for the guest name strcpy(guest, g_p); //copy fourth argument into new space room_cap = roomcap; daily_rt = rate; occup_stat = occup; } HotelRoom::~HotelRoom() { cout << endl<<endl; cout << "Guest in room "<<room_num << " has checked out." <<endl; delete [] guest; } void HotelRoom::Display_Number() { cout << room_num; } int HotelRoom::Get_Capacity() { return room_cap; } int HotelRoom::Get_Status() { return occup_stat; } int HotelRoom::Change_Status(int occup) { occup_stat = occup; if (occup > room_cap) { return -1; } else return occup_stat; } double HotelRoom::Get_Rate() { return daily_rt; } double HotelRoom::Change_Rate(double rate) { daily_rt = rate; return daily_rt; } int Transfer(char room, char transroom) { room = transroom; return room; } void HotelRoom::Display_Guest() { cout<< guest; } int main() { cout<< setprecision(2) <<setiosflags(ios::fixed) <<setiosflags(ios::showpoint); char room[4]; char buffer[100]; //temporarily stores guest name int roomcap = 4; char transroom[4]; int occup; double rate = 89.00; cout<<"\nEnter the room number: "<<endl; cin.getline(room, 5); cout<<"\nEnter the amount of guest to occupy this room: "<<endl; cin>>occup; cout<<"\nEnter the primary guest name: "<<endl; cin.ignore(); cin.getline(buffer, 100); cout<<"\nThe guest has decided to transfer rooms"<<endl; cout<<"\nEnter the room to transfer the guest to"<<endl; cin.getline(transroom,5); HotelRoom room1(room, buffer, roomcap, occup, rate); //initialize the object if (room1.Change_Status(occup) == -1) { cout<<"You have exceeded the room capacity"<<endl; } else { cout <<"\nThe room number is "; room1.Display_Number(); cout<<"."<<endl; cout<<"\nThe name of the primary guest is "; room1.Display_Guest(); cout <<"."<<endl; cout<<"\nThe number of guest in the room is "<<room1.Change_Status(occup)<<"."<<endl; cout<<"\nThe daily rate for room "<<room<< " is "<<room1.Get_Rate()<<"."<<endl<<endl; cout<<"\nYou have tranferred the guest from room"<<room1.Display_Number()<<"to"<<Transfer(room, transroom)<<endl; } cout<<"\nRoom "; room1.Display_Number(); cout<<" is vacant."<<endl; system("PAUSE"); return 0; }
The error is saying
"(159): error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'void' (or there is no acceptable conversion)"
Any help would be greatly appreciated.
Thanks in advance!!