#include <iostream.h>
#include <fstream.h>

class Person {
 private:
  static const int max=20;
  int age;
  char phoneNumber[max];
  char name[max];

 public:
  int Age() const { return age; }
  char* Name() { return name; }

  void setAge(int a) { age=a; }
  void setName(char* s) { strcpy(name,s); }

  friend istream& operator>>(istream&, Person&);
  friend ostream& operator<<(ostream&, const Person&);
  friend ifstream& operator>>(ifstream&, Person&);
  friend ofstream& operator<<(ofstream&, const Person&);

};

istream& operator >> (istream& i, Person& p)
{

  cout << "Enter name: ";
  i >> p.name;
  
  if (i) {
    cout << "Enter age: ";
    i >> p.age;
    cout << "Enter phone number: ";
    i >> p.phoneNumber; 
  }

  return i; // most common mistake: forgetting to return the stream
}

ostream& operator << (ostream& o, const Person& p)
{
  o << p.name << endl;
  o << "  Age: " << p.age << ", Phone: " << p.phoneNumber << endl;

  return o;  // most common mistake: forgetting to return the stream
}

