36. C++ Перегрузка операторов ввода/вывода

Перегрузка операторов ввода/вывода

Классы 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);

};

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *