I'm kinda confused between the two
If you look into this driver class, i have an object Address. Am kinda confused whether to make it a reference like i have, or remove the '&' sign ...Code:#include <string> class Address; class Driver { public: Driver(Address& ad); void SetDriverDetails(const std::string& fname, const std::string& lname, const std::string& IDno, const std::string& contact); const std::string& getFName() const; const std::string& getSName() const; bool ReadFromFile(std::istream& i, std::string* refNo); friend std::istream& operator>>(std::istream& in, Driver& driver); void SetAddress(Address add); Address getAddress() const; const std::string& getContact() const; const std::string& getIDNo() const; private: std::string firstName; std::string lastName; std::string idNo; Address& address; std::string contact; };
this is how i use it
Code:// Overload for reading input file streams std::istream& operator>>(std::istream& in, Driver& driver) { std::string fname, sname, licNo, contact; Address add; std::string IDNo; in >> fname >> sname; in >> IDNo; in >> contact; in >> add; // Here .... driver.SetAddress(add); driver.SetDriverDetails(fname, sname, IDNo, contact); return in; } void Driver::SetAddress(Address add) { address = add; }


