#include <string>
#include <iostream>
class Person
{
public:
friend std::ostream& operator<<(std::ostream&, const Person&);
friend std::istream& operator>>(std::istream&, Person&);
private:
std::string name_;
int age_;
};
std::ostream& operator<<(std::ostream& os, const Person& p)
{
os << p.name_ << " " << p.age_;
return os;
}
std::istream& operator>>(std::istream& is, Person& p)
{
is >> p.name_;
is >> p.age_;
return is;
}
int main()
{
Person person;
std::cout << "Reading person description from standard input" << std::endl;
std::cin >> person;
std::cout << "Outputting back that person description to standard output" << std::endl;
std::cout << person << std::endl;
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgUGVyc29uCnsKcHVibGljOgoJZnJpZW5kIHN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0mLCBjb25zdCBQZXJzb24mKTsKCWZyaWVuZCBzdGQ6OmlzdHJlYW0mIG9wZXJhdG9yPj4oc3RkOjppc3RyZWFtJiwgUGVyc29uJik7CnByaXZhdGU6CglzdGQ6OnN0cmluZyBuYW1lXzsKCWludCBhZ2VfOwp9OwoKc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYgb3MsIGNvbnN0IFBlcnNvbiYgcCkKewoJb3MgPDwgcC5uYW1lXyA8PCAiICIgPDwgcC5hZ2VfOwoJcmV0dXJuIG9zOwp9CgpzdGQ6OmlzdHJlYW0mIG9wZXJhdG9yPj4oc3RkOjppc3RyZWFtJiBpcywgUGVyc29uJiBwKQp7CglpcyA+PiBwLm5hbWVfOwoJaXMgPj4gcC5hZ2VfOwoJcmV0dXJuIGlzOwp9CgppbnQgbWFpbigpCnsKCVBlcnNvbiBwZXJzb247CgoJc3RkOjpjb3V0IDw8ICJSZWFkaW5nIHBlcnNvbiBkZXNjcmlwdGlvbiBmcm9tIHN0YW5kYXJkIGlucHV0IiA8PCBzdGQ6OmVuZGw7CglzdGQ6OmNpbiA+PiBwZXJzb247CgoJc3RkOjpjb3V0IDw8ICJPdXRwdXR0aW5nIGJhY2sgdGhhdCBwZXJzb24gZGVzY3JpcHRpb24gdG8gc3RhbmRhcmQgb3V0cHV0IiA8PCBzdGQ6OmVuZGw7CglzdGQ6OmNvdXQgPDwgcGVyc29uIDw8IHN0ZDo6ZW5kbDsKfQ==