I am using visual c++ and I am having trouble overloading the >> operator. When I compile it says that _simNo is private and it can't be accesed. Why doesn't this work:
SimCard.h
#include <string>
#include <iostream>
using namespace std;
class SimCard
{
public:
SimCard(const string& tempSimNo = "", const string& tempCustName = "", const string& tempAddress = "", const string& tempSuburb = "", const float& tempCredit = 0.0);
friend istream &operator>> (istream& is, SimCard& sim);
void setCredit(const float credit);
string getSimNo() const;
~SimCard();
private:
string _simNo;
string _custName;
string _address;
string _suburb;
float _credit;
};
SimCard.cpp
#include "SimCard.h"
using namespace std;
SimCard::SimCard(const string& tempSimNo, const string& tempCustName, const string& tempAddress, const string& tempSuburb, const float& tempCredit)
{
_simNo = tempSimNo;
_custName = tempCustName;
_address = tempAddress;
_suburb = tempSuburb;
_credit = tempCredit;
}
istream& operator>> (istream& is, SimCard& sim)
{
getline(is, sim._simNo);
getline(is, sim._custName);
getline(is, sim._address);
getline(is, sim._suburb);
is>>sim._credit;
is.ignore();
return is;
}
void SimCard::setCredit(const float credit)
{
_credit = credit;
}
string SimCard::getSimNo() const
{
return _simNo;
}
SimCard::~SimCard()
{
}