Перегрузка операторов ввода/вывода
Классы cin/cout и ifstream / fstream, ofstream, являются наследниками классов ostream/istream, поэтому можем использовать следующие перегрузки для public полей string Name; и unsigned int age; класса Person;
Person c_Person;
ostream& operator <<(ostream& os, const Person& c_Person)
{
os<<”Name: ”<<c_Person.Name<<”\n”;
os<<”Age: ”<<c_Person.age<<”\n”;;
return os;
}
istream& operator <<(istream& is, Person& c_Person)
{
is>> c_Person.Name>> c_Person.age;
return is;
}
Для private полей можно использовать getVoid и setVoid а также ключевое слово friend, например:
Person
{
//code
private:
string Name;
unsigned int age;
friend ostream& operator <<(ostream& os, const Person& c_Person);
friend istream& operator <<(istream& is, Person& c_Person);
};