In the following example adding a secretary to an office automatically adds that office to the secretary. How can I get the reverse association to be automatic, that is, adding an office to a secretary automatically adds that secretary to the office. Thanking you for your help.
//Secretary.h
#include <iostream>
using namespace std;
#include <string>
#include "Office.h"
class Office;
class Secretary
{ private:
char role[80];
Office* office;
public:
Secretary(char* role_in) { strcpy(role, role_in); }
char* getRole() { return role; }
void addOffice(Office* room) { office = room; }
Office* getOffice() { return office; }
};
#include "Secretary.h"
class Secretary;
class Office
{ private:
int room_number;
Secretary* secretary;
public:
Office(int number) { room_number = number; }
int getRoomNumber() { return room_number; }
Secretary* getSecretary() { return secretary; }
void addSecretary(Secretary* sec)
{ secretary = sec;
secretary->addOffice(this);
}
};
#include "Office.h"
void main()
{ Office* faculty_office = new Office(101);
Secretary* secretary = new Secretary("faculty secretary");
faculty_office -> addSecretary(secretary);
cout << "The " << secretary -> getRole() << " is in room ";
cout << secretary -> getOffice() -> getRoomNumber() << endl;
cout << "Room number " << faculty_office -> getRoomNumber() << " houses the ";
cout << faculty_office -> getSecretary() -> getRole() << endl;
}
//Secretary.h
#include <iostream>
using namespace std;
#include <string>
#include "Office.h"
class Office;
class Secretary
{ private:
char role[80];
Office* office;
public:
Secretary(char* role_in) { strcpy(role, role_in); }
char* getRole() { return role; }
void addOffice(Office* room) { office = room; }
Office* getOffice() { return office; }
};
#include "Secretary.h"
class Secretary;
class Office
{ private:
int room_number;
Secretary* secretary;
public:
Office(int number) { room_number = number; }
int getRoomNumber() { return room_number; }
Secretary* getSecretary() { return secretary; }
void addSecretary(Secretary* sec)
{ secretary = sec;
secretary->addOffice(this);
}
};
#include "Office.h"
void main()
{ Office* faculty_office = new Office(101);
Secretary* secretary = new Secretary("faculty secretary");
faculty_office -> addSecretary(secretary);
cout << "The " << secretary -> getRole() << " is in room ";
cout << secretary -> getOffice() -> getRoomNumber() << endl;
cout << "Room number " << faculty_office -> getRoomNumber() << " houses the ";
cout << faculty_office -> getSecretary() -> getRole() << endl;
}