//
//  NAME
//    person.h
//
//  DESCRIPTION
//    This file contains the type definitions and function prototypes
//    exported by the Person module.
//

#ifndef _person_h_
#define _person_h_

//
//  Include files.
//

#include 

//
//  Constants.
//

const int firstNameLen = 20;      //  Maximum length of first name.
const int lastNameLen  = 20;      //  Maximum length of last name.

//
//  NAME
//    person
//
//  DESCRIPTION
//    This class models a person.
//
//  DATA MEMBERS
//    firstName  (private) - person's first name.
//    lastName   (private) - person's last name.
//    age        (private) - person's age.
//
//  FUNCTION MEMBERS
//
//    person()
//        Default constructor.
//        Parameters:  (none)
//        Returns:     (none)
//
//    person(const person& p)
//        Copy constructor.
//        Parameters:  p  (in) - source person.
//        Returns:     (none)
//
//    operator=
//        Assignment operator.
//        Parameters:  p  (in) - source person.
//        Retruns:     reference to destination person.
//
//  FRIENDS
//    operator<<  - the output operator.
//    operator>>  - the input operator.
//

class person {
   public:
      person();
      person(const person& p);
      const person& operator=(const person& p);
      friend ostream& operator<<(ostream& os, const person& p);
      friend istream& operator>>(istream& is, person& p);
   private:
      char firstName[firstNameLen];
      char lastName[lastNameLen];
      int  age;
};

#endif