У меня есть файл myFile.txt
, содержащий имя, фамилию и идентификатор учащегося в следующем формате:
First-Name Last-Name ID
‹-- Эта строка не включена в файл
Steve Smith 12345
‹-- Эта строка включена в файл
У меня также есть класс Student
, который выглядит как
class Student
{
private:
std::string firstName;
std::string lastName;
int id;
public:
Student();
Student(std::string fname, std::string lname, int i);
~Student();
void setFirstName(std::string fnam);
std::string getFirstName();
void setLastName(std::string lnam);
std::string getLastName();
void SetID(int i);
int getID();
};
Я хочу прочитать файл myFile.txt
и сохранить информацию в соответствующих частных переменных-членах студенческого класса.
Я знаю, что мне нужно перегрузить оператор >>
, но я не могу понять, как сохранить данные из файла в соответствующие переменные, когда переменные private.
Чтобы записать в файл, я перегрузил оператор <<
следующим образом.
std::ostream& operator << (std::ostream &out, Student &stu)
{
out << stu.getFirstName() << " " << stu.getLastName() << " " << stu.getID() << std::endl;
return out;
}
Вопрос: как перегрузить оператор >>
, чтобы данные из текстового файла сохранялись в соответствующих переменных, когда переменные являются личными и доступны только с использованием setter
и getter
функции?
std::istream& operator >> (std::istream &in, Student &stu)
{
in >> //what do i write here ? do i have to call the setter functions ? if so, how ?
return in;
}