#include "employee.h" // incomplete class and not fully documented //-------------------------- constructor ----------------------------------- Employee::Employee(int id, int sal, string last, string first) { idNumber = (id >= 0 ? id : -1); salary = (sal >= 0 ? sal : -1); lastName = last; firstName = first; } //-------------------------- destructor ------------------------------------ // Needed so that memory for strings is properly deallocated Employee::~Employee() { } //---------------------- copy constructor ----------------------------------- Employee::Employee(const Employee& E) { lastName = E.lastName; firstName = E.firstName; idNumber = E.idNumber; salary = E.salary; } //-------------------------- operator= --------------------------------------- Employee& Employee::operator=(const Employee& E) { if (&E != this) { idNumber = E.idNumber; salary = E.salary; lastName = E.lastName; firstName = E.firstName; } return *this; } //----------------------------- setData ------------------------------------ // set data from file bool Employee::setData(ifstream& inFile) { inFile >> lastName >> firstName >> idNumber >> salary; return idNumber >= 0 && salary >= 0; } //----------------------------- getData ------------------------------------ // get data that uniquely identifies an Employee object int Employee::getData() const { return idNumber; } //------------------------------- < ---------------------------------------- // < defined by value of idNumber bool Employee::operator<(const Employee& E) const { return idNumber < E.idNumber; } //------------------------------- <= ---------------------------------------- // < defined by value of idNumber bool Employee::operator<=(const Employee& E) const { return idNumber < E.idNumber || idNumber == E.idNumber; } //------------------------------- > ---------------------------------------- // > defined by value of idNumber bool Employee::operator>(const Employee& E) const { return idNumber > E.idNumber; } //------------------------------- >= ---------------------------------------- // < defined by value of idNumber bool Employee::operator>=(const Employee& E) const { return idNumber > E.idNumber || idNumber == E.idNumber; } //----------------- operator == (equality) ---------------- // if idNumber of calling and passed object are equal, // return true, otherwise false // bool Employee::operator==(const Employee& E) const { return idNumber == E.idNumber; } //----------------- operator != (inequality) ---------------- // return opposite value of operator== bool Employee::operator!=(const Employee& E) const { return !(*this == E); } //------------------------------- << --------------------------------------- // display Employee object ostream& operator<<(ostream& output, const Employee& E) { output << setw(4) << E.idNumber << setw(7) << E.salary << " " << E.lastName << " " << E.firstName << endl; return output; }