// Student.cpp

#include "Student.h"

//constructor for the base class Student
Student::Student(int ID, Name last, Name first)
	: IDNumber(ID), lastName(last), firstName(first), grade( 'I' )
{
}

//constructor for the derived class GraduateStudent
GraduateStudent::GraduateStudent(int ID, Name last, Name first, int officenumber)
		: Student(ID, last, first), number(officenumber)
{
}


//formats the output to screen for a regular student
void Student::print(ostream & out)
{
	out<<lastName<<'\t'<<firstName<<'\t'<<IDNumber<<'\t'<<grade;
}

//formats the output to screen for a grad student
void GraduateStudent::print(ostream & out)
{
	out<<lastName<<'\t'<<firstName<<'\t'<<IDNumber
		<<'\t'<<number;
}

//input-output operator
ostream & operator << (ostream & out, Student & s)
{
	s.print(out);
	return out;
}

