class Student { public: void GradeReport() const; // print the header info }; class Grad : public Student { public: void GradeReport() const; // print the FULL report }; class Undergrad : public Student { public: void GradeReport() const; }; -------------------------- void Student::GradeReport() const { // print header info -- name, address, ssn, etc. } void Grad::GradeReport() const { Student::GradeReport(); // do common work -- report header outputs // print things that are specific to grad students (thesis, etc) } void Undergrad::GradeReport() const { Student::GradeReport(); // do common work -- report header outputs // print things that are specific to undergrad students (like general studies requirements) }