<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mywikibiz.com/index.php?action=history&amp;feed=atom&amp;title=Directory%3ADerek_Elder%2FPrograms%2FMultipleInheritance</id>
	<title>Directory:Derek Elder/Programs/MultipleInheritance - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mywikibiz.com/index.php?action=history&amp;feed=atom&amp;title=Directory%3ADerek_Elder%2FPrograms%2FMultipleInheritance"/>
	<link rel="alternate" type="text/html" href="https://mywikibiz.com/index.php?title=Directory:Derek_Elder/Programs/MultipleInheritance&amp;action=history"/>
	<updated>2026-06-12T17:35:41Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.3</generator>
	<entry>
		<id>https://mywikibiz.com/index.php?title=Directory:Derek_Elder/Programs/MultipleInheritance&amp;diff=133002&amp;oldid=prev</id>
		<title>Derek Elder: MultipleInheritance program</title>
		<link rel="alternate" type="text/html" href="https://mywikibiz.com/index.php?title=Directory:Derek_Elder/Programs/MultipleInheritance&amp;diff=133002&amp;oldid=prev"/>
		<updated>2011-02-19T23:04:06Z</updated>

		<summary type="html">&lt;p&gt;MultipleInheritance program&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__TOC__&lt;br /&gt;
==Main.cpp==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;quot;Faculty.h&amp;quot;&lt;br /&gt;
#include &amp;quot;GradStudent.h&amp;quot;&lt;br /&gt;
#include &amp;quot;Person.h&amp;quot;&lt;br /&gt;
#include &amp;quot;Student.h&amp;quot;&lt;br /&gt;
#include &amp;quot;StudentVoter.h&amp;quot;&lt;br /&gt;
#include &amp;quot;Voter.h&amp;quot;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
void clearScreen();&lt;br /&gt;
void Pause();&lt;br /&gt;
char displayMenuAndGetSelection();&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
	int i, numDegrees;&lt;br /&gt;
	char menuChoice = ' ';&lt;br /&gt;
	bool done = false;&lt;br /&gt;
	string *fs, *fs2;&lt;br /&gt;
	fs = new string[2];&lt;br /&gt;
	fs[0] = &amp;quot;History&amp;quot;;&lt;br /&gt;
	fs[1] = &amp;quot;Philosophy&amp;quot;;&lt;br /&gt;
	vector&amp;lt;string&amp;gt; vf;&lt;br /&gt;
&lt;br /&gt;
	StudentVoter sv1(&amp;quot;Harold&amp;quot;,88,&amp;quot;000-00-0152&amp;quot;,3.99f,&amp;quot;Independent&amp;quot;), sv2, sv4;&lt;br /&gt;
	StudentVoter sv3(sv1);&lt;br /&gt;
	Faculty f1(&amp;quot;Lucas&amp;quot;,50,&amp;quot;999-88-777&amp;quot;,2,fs), f2, f4;&lt;br /&gt;
	Faculty f3(f1);&lt;br /&gt;
&lt;br /&gt;
	while(!done)&lt;br /&gt;
	{&lt;br /&gt;
		menuChoice = displayMenuAndGetSelection();&lt;br /&gt;
		clearScreen();&lt;br /&gt;
		switch(menuChoice)&lt;br /&gt;
		{&lt;br /&gt;
			case '1':&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;Checking out the StudentVoter class.\n&amp;quot;;&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;\nStudentVoter sv1(\&amp;quot;Harold\&amp;quot;,88,\&amp;quot;000-00-0152\&amp;quot;,3.99f,\&amp;quot;Independent\&amp;quot;)\n&amp;quot;&lt;br /&gt;
					&amp;lt;&amp;lt;&amp;quot;Checking out the constructor\n&amp;quot;;&lt;br /&gt;
				cout&amp;lt;&amp;lt;sv1;&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;\n----------------------&amp;quot;;&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;\nStudentVoter sv2, checking out the default constructor\n&amp;quot;;&lt;br /&gt;
				cout&amp;lt;&amp;lt;sv2;&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;\n----------------------&amp;quot;;&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;\nStudentVoter sv3(sv1), checking out the copy constructor\n&amp;quot;;&lt;br /&gt;
				cout&amp;lt;&amp;lt;sv3;&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;\n----------------------&amp;quot;;&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;\n\nHit enter to continue: &amp;quot;;&lt;br /&gt;
				cin.get();&lt;br /&gt;
				sv4 = sv2;&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;\nStudentVoter sv4 = sv2, checking out the assignment operator\n&amp;quot;;&lt;br /&gt;
				cout&amp;lt;&amp;lt;sv4;&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;\n----------------------&amp;quot;;&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;\nChecking out the Accessors\n&amp;quot;;&lt;br /&gt;
				//cout&amp;lt;&amp;lt;&amp;quot;\nsv1.Name() = &amp;quot;&amp;lt;&amp;lt;sv1.Name();&lt;br /&gt;
				//cout&amp;lt;&amp;lt;&amp;quot;\nsv1.Age() = &amp;quot;&amp;lt;&amp;lt;sv1.Age();&lt;br /&gt;
				//cout&amp;lt;&amp;lt;&amp;quot;\nsv1.SSN() = &amp;quot;&amp;lt;&amp;lt;sv1.SSN();&lt;br /&gt;
				//cout&amp;lt;&amp;lt;&amp;quot;\nsv1.GPA() = &amp;quot;&amp;lt;&amp;lt;sv1.GPA();&lt;br /&gt;
				//cout&amp;lt;&amp;lt;&amp;quot;\nsv1.PartyAffiliation() = &amp;quot;&amp;lt;&amp;lt;sv1.PartyAffiliation();&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;sv1.Type() = &amp;quot;&amp;lt;&amp;lt;sv1.Type();&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;\n----------------------&amp;quot;;&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;\nBefore input for StudentVoter sv2.\n&amp;quot;;&lt;br /&gt;
				cin&amp;gt;&amp;gt;sv2;&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;\n----------------------&amp;quot;;&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;\nStudentVoter sv2 follows:\n&amp;quot;;&lt;br /&gt;
				cout&amp;lt;&amp;lt;sv2;&lt;br /&gt;
				Pause();&lt;br /&gt;
				done = false;&lt;br /&gt;
				break;&lt;br /&gt;
			case '2':&lt;br /&gt;
				/*Mutator tests&lt;br /&gt;
				string fs3[3];&lt;br /&gt;
				fs3[0] = string(&amp;quot;Matchematics&amp;quot;);&lt;br /&gt;
				fs3[1] = string(&amp;quot;English&amp;quot;);&lt;br /&gt;
				fs3[2] = string(&amp;quot;Computer Sciene&amp;quot;);&lt;br /&gt;
				f1.Degrees(fs3,3);&lt;br /&gt;
				cout &amp;lt;&amp;lt;&amp;quot;\nAfter:&amp;quot;&lt;br /&gt;
					 &amp;lt;&amp;lt;&amp;quot;\n      string fs3[3];&amp;quot;&lt;br /&gt;
					 &amp;lt;&amp;lt;&amp;quot;\n      fs3[0] = string(&amp;quot;Matchematics&amp;quot;);&lt;br /&gt;
					 &amp;lt;&amp;lt;&amp;quot;\n      fs3[1] = string(&amp;quot;English&amp;quot;);&lt;br /&gt;
					 &amp;lt;&amp;lt;&amp;quot;\n      fs3[2] = string(&amp;quot;Computer Sciene&amp;quot;);&lt;br /&gt;
					 &amp;lt;&amp;lt;&amp;quot;\n      f1.Degrees(fs3,3);&amp;quot;&lt;br /&gt;
					 &amp;lt;&amp;lt;&amp;quot;\nf1 follows:\n&amp;quot;&amp;lt;&amp;lt;f1&lt;br /&gt;
				//---------------------------------------------&lt;br /&gt;
				fs[0] = string(&amp;quot;Writing&amp;quot;);&lt;br /&gt;
				fs[1] = string(&amp;quot;Business&amp;quot;);&lt;br /&gt;
				const Faculty f5(&amp;quot;George Shaw&amp;quot;,65,&amp;quot;294-32-2952&amp;quot;,1.1,fs,2);&lt;br /&gt;
				cout &amp;lt;&amp;lt; &amp;quot;\nAfter:&amp;quot;&lt;br /&gt;
					 &amp;lt;&amp;lt; &amp;quot;\n      string fs[2];&amp;quot;&lt;br /&gt;
					 &amp;lt;&amp;lt; &amp;quot;\n      fs[0] = string(&amp;quot;Writing&amp;quot;);&lt;br /&gt;
					 &amp;lt;&amp;lt; &amp;quot;\n      fs[1] = string(&amp;quot;Business&amp;quot;);&lt;br /&gt;
					 &amp;lt;&amp;lt; &amp;quot;\n      const Faculty f5(&amp;quot;George Shaw&amp;quot;,65,&amp;quot;294-32-2952&amp;quot;,1.1,fs,2);&lt;br /&gt;
					 &amp;lt;&amp;lt; &amp;quot;\nf5 follows:\n&amp;quot;&amp;lt;&amp;lt;f5;*/&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;Checking out the Faculty class.\n&amp;quot;;&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;\nFaculty f1(\&amp;quot;Lucas\&amp;quot;,50,\&amp;quot;999-88-777\&amp;quot;,2,fs), checking out the constructor\n&amp;quot;;&lt;br /&gt;
				cout&amp;lt;&amp;lt;f1;&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;\nContents of String *fs follows:\n&amp;quot;;&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;fs[0] = &amp;quot;&amp;lt;&amp;lt;fs[0];&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;\n&amp;quot;;&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;fs[1] = &amp;quot;&amp;lt;&amp;lt;fs[1];&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;\n----------------------&amp;quot;;&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;\nFaculty f2, checking out the default constructor\n&amp;quot;;&lt;br /&gt;
				cout&amp;lt;&amp;lt;f2;&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;\n----------------------&amp;quot;;&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;\nFaculty f3(f1), checking out the copy constructor\n&amp;quot;;&lt;br /&gt;
				cout&amp;lt;&amp;lt;f3;&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;\n----------------------&amp;quot;;&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;\n\nHit enter to continue: &amp;quot;;&lt;br /&gt;
				cin.get();&lt;br /&gt;
				f4 = f2;&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;\nFaculty f4 = f2, checking out the assignment operator\n&amp;quot;;&lt;br /&gt;
				cout&amp;lt;&amp;lt;f4;&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;\n----------------------&amp;quot;;&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;\nChecking out the Accessors\n&amp;quot;;&lt;br /&gt;
				//cout&amp;lt;&amp;lt;&amp;quot;\nf1.Name() = &amp;quot;&amp;lt;&amp;lt;f1.Name();&lt;br /&gt;
				//cout&amp;lt;&amp;lt;&amp;quot;\nf1.Age() = &amp;quot;&amp;lt;&amp;lt;f1.Age();&lt;br /&gt;
				//cout&amp;lt;&amp;lt;&amp;quot;\nf1.SSN() = &amp;quot;&amp;lt;&amp;lt;f1.SSN();&lt;br /&gt;
				//cout&amp;lt;&amp;lt;&amp;quot;\nf1.GPA() = &amp;quot;&amp;lt;&amp;lt;f1.GPA();&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;\nf1.NumberOfDegrees() = &amp;quot;&amp;lt;&amp;lt;f1.NumberOfDegrees();&lt;br /&gt;
				fs2 = f1.Degrees(numDegrees);&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;\nAfter string *fs2 = f1.Degrees(numDegrees)&amp;quot;;&lt;br /&gt;
				for(i = 0;i &amp;lt; numDegrees;i++)&lt;br /&gt;
					cout&amp;lt;&amp;lt;&amp;quot;\nDegree Number &amp;quot;&amp;lt;&amp;lt;(i+1)&amp;lt;&amp;lt;&amp;quot;: &amp;quot;&amp;lt;&amp;lt;fs2[i];&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;\nf1.Type() = &amp;quot;&amp;lt;&amp;lt;f1.Type();&lt;br /&gt;
				vf = f1.Degrees(); //Vector testing&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;\nAfter vf = f1.Degrees();&amp;quot;;&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;\nvf.size() = &amp;quot;&amp;lt;&amp;lt;vf.size();&lt;br /&gt;
				for(i = 0;i &amp;lt; static_cast&amp;lt;int&amp;gt;(vf.size());i++)&lt;br /&gt;
					cout&amp;lt;&amp;lt;&amp;quot;\nDegree Number &amp;quot;&amp;lt;&amp;lt;(i+1)&amp;lt;&amp;lt;&amp;quot;: &amp;quot;&amp;lt;&amp;lt;vf[i];&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;\n----------------------&amp;quot;;&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;\nBefore input for Faculty f2.\n&amp;quot;;&lt;br /&gt;
				cin&amp;gt;&amp;gt;f2;&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;\n----------------------&amp;quot;;&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;\nFaculty f2 follows:\n&amp;quot;;&lt;br /&gt;
				cout&amp;lt;&amp;lt;f2;&lt;br /&gt;
				Pause();&lt;br /&gt;
				done = false;&lt;br /&gt;
				break;&lt;br /&gt;
			case '3':&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;Program terminated, goodbye.&amp;quot;;&lt;br /&gt;
				cin.get();&lt;br /&gt;
				done = true;&lt;br /&gt;
				break;&lt;br /&gt;
			default:&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;Incorrect choice selected&amp;quot;&amp;lt;&amp;lt;endl;&lt;br /&gt;
				Pause();&lt;br /&gt;
				done = false;&lt;br /&gt;
				break;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	delete[] fs;&lt;br /&gt;
	delete[] fs2;&lt;br /&gt;
}&lt;br /&gt;
void clearScreen()&lt;br /&gt;
{&lt;br /&gt;
	system(&amp;quot;cls&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
void Pause()&lt;br /&gt;
{&lt;br /&gt;
	cout&amp;lt;&amp;lt;&amp;quot;\n\nPress 'ENTER' to return to the main menu...\n&amp;quot;;&lt;br /&gt;
	cin.get();&lt;br /&gt;
}&lt;br /&gt;
char displayMenuAndGetSelection()&lt;br /&gt;
{&lt;br /&gt;
	char choice;&lt;br /&gt;
	clearScreen();&lt;br /&gt;
	cout&amp;lt;&amp;lt;&amp;quot;\n\n\n&amp;quot;;&lt;br /&gt;
	cout&amp;lt;&amp;lt;&amp;quot;'1' -- Checking out the StudentVoter class.\n\n&amp;quot;;&lt;br /&gt;
	cout&amp;lt;&amp;lt;&amp;quot;'2' -- Checking the Faculty class.\n\n&amp;quot;;&lt;br /&gt;
	cout&amp;lt;&amp;lt;&amp;quot;'3' -- Quit the program.\n\n&amp;quot;;&lt;br /&gt;
	cin&amp;gt;&amp;gt;choice;&lt;br /&gt;
	cin.ignore(50,'\n');&lt;br /&gt;
	return choice;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Person.h==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#pragma once&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
class Person&lt;br /&gt;
{&lt;br /&gt;
private:&lt;br /&gt;
	char* m_name;&lt;br /&gt;
	int m_age;&lt;br /&gt;
    string m_ssn;&lt;br /&gt;
public:&lt;br /&gt;
    Person();&lt;br /&gt;
	Person(char* name, int age, string ssn);&lt;br /&gt;
    Person(const Person &amp;amp;p);&lt;br /&gt;
    virtual ~Person();&lt;br /&gt;
	Person&amp;amp; operator=(const Person&amp;amp; p);&lt;br /&gt;
	void Name(const char* const name);&lt;br /&gt;
	string Name() const;&lt;br /&gt;
	void Age(int age);&lt;br /&gt;
	int Age() const;&lt;br /&gt;
	void SSN(string ssn);&lt;br /&gt;
	string SSN() const;&lt;br /&gt;
	string virtual Type() const;&lt;br /&gt;
    virtual void Read(istream&amp;amp; is);&lt;br /&gt;
	virtual void Write(ostream&amp;amp; os) const;&lt;br /&gt;
};&lt;br /&gt;
ostream&amp;amp; operator&amp;lt;&amp;lt;(ostream&amp;amp; os, const Person&amp;amp; p);&lt;br /&gt;
istream&amp;amp; operator&amp;gt;&amp;gt;(istream&amp;amp; is, Person&amp;amp; p);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Person.cpp==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;quot;Person.h&amp;quot;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
Person::Person()&lt;br /&gt;
{&lt;br /&gt;
	int i;&lt;br /&gt;
	m_name = new char[3];&lt;br /&gt;
	for(i = 0;i &amp;lt; 2; i++)&lt;br /&gt;
		m_name[i] = '*';&lt;br /&gt;
	m_name[2] = '\0';&lt;br /&gt;
	m_age = 0;&lt;br /&gt;
	m_ssn = &amp;quot;***-**-****&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
Person::Person(char* name, int age, string ssn)&lt;br /&gt;
{&lt;br /&gt;
	int i;&lt;br /&gt;
	m_name = new char[(int)strlen(name)+1];&lt;br /&gt;
	for(i = 0;i &amp;lt;= (int)strlen(name);i++)&lt;br /&gt;
		m_name[i] = name[i];&lt;br /&gt;
	m_age = age;&lt;br /&gt;
	m_ssn = ssn;&lt;br /&gt;
}&lt;br /&gt;
Person::Person(const Person &amp;amp;p)&lt;br /&gt;
{&lt;br /&gt;
	int i;&lt;br /&gt;
	m_name = new char[((int)strlen(p.m_name)+1)];&lt;br /&gt;
	for(i = 0;i &amp;lt;= (int)strlen(p.m_name);i++)&lt;br /&gt;
		m_name[i] = p.m_name[i];&lt;br /&gt;
	m_age = p.m_age;&lt;br /&gt;
	m_ssn = p.m_ssn;&lt;br /&gt;
}&lt;br /&gt;
Person::~Person()&lt;br /&gt;
{&lt;br /&gt;
	if(m_name != NULL)&lt;br /&gt;
	{&lt;br /&gt;
		delete[] m_name;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
Person&amp;amp; Person::operator=(const Person&amp;amp; p)&lt;br /&gt;
{&lt;br /&gt;
	if(this != &amp;amp;p)&lt;br /&gt;
	{&lt;br /&gt;
		int i;&lt;br /&gt;
		delete[] m_name;&lt;br /&gt;
		m_name = new char[((int)strlen(p.m_name)+1)];&lt;br /&gt;
		for(i = 0; i &amp;lt;= (int)strlen(p.m_name);i++)&lt;br /&gt;
			m_name[i] = p.m_name[i];&lt;br /&gt;
		m_age = p.m_age;&lt;br /&gt;
		m_ssn = p.m_ssn;&lt;br /&gt;
	}&lt;br /&gt;
	return *this;&lt;br /&gt;
}&lt;br /&gt;
void Person::Name(const char* const name)&lt;br /&gt;
{&lt;br /&gt;
	int i;&lt;br /&gt;
	delete[] m_name;&lt;br /&gt;
	m_name = new char[((int)strlen(name)+1)];&lt;br /&gt;
	for(i = 0;i &amp;lt;= (int)strlen(name);i++)&lt;br /&gt;
		m_name[i] = name[i];&lt;br /&gt;
}&lt;br /&gt;
string Person::Name() const&lt;br /&gt;
{&lt;br /&gt;
	/*int i&lt;br /&gt;
	for(i = 0;i &amp;lt;= (int)strlen(m_name);i++)&lt;br /&gt;
		cout&amp;lt;&amp;lt;m_name[i];*/&lt;br /&gt;
	return string(m_name);&lt;br /&gt;
}&lt;br /&gt;
void Person::Age(int age)&lt;br /&gt;
{&lt;br /&gt;
	m_age = age;&lt;br /&gt;
}&lt;br /&gt;
int Person::Age() const&lt;br /&gt;
{&lt;br /&gt;
	return m_age;&lt;br /&gt;
}&lt;br /&gt;
void Person::SSN(string ssn)&lt;br /&gt;
{&lt;br /&gt;
	m_ssn = ssn;&lt;br /&gt;
}&lt;br /&gt;
string Person::SSN() const&lt;br /&gt;
{&lt;br /&gt;
	return m_ssn;&lt;br /&gt;
}&lt;br /&gt;
string Person::Type() const&lt;br /&gt;
{&lt;br /&gt;
	return string(&amp;quot;This is a Person Object&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
void Person::Read(istream&amp;amp; is)&lt;br /&gt;
{&lt;br /&gt;
	string name;&lt;br /&gt;
&lt;br /&gt;
	if(is == cin)&lt;br /&gt;
	{&lt;br /&gt;
		cout&amp;lt;&amp;lt;&amp;quot;Enter the name: &amp;quot;&amp;lt;&amp;lt;flush;&lt;br /&gt;
		getline(is,name);&lt;br /&gt;
		cout&amp;lt;&amp;lt;&amp;quot;Enter the age: &amp;quot;&amp;lt;&amp;lt;flush;&lt;br /&gt;
		is&amp;gt;&amp;gt;m_age;&lt;br /&gt;
		cout&amp;lt;&amp;lt;&amp;quot;Enter the social security number: &amp;quot;&amp;lt;&amp;lt;flush;&lt;br /&gt;
		is&amp;gt;&amp;gt;m_ssn;&lt;br /&gt;
		is.get();&lt;br /&gt;
	}&lt;br /&gt;
	else&lt;br /&gt;
	{&lt;br /&gt;
		getline(is,name);&lt;br /&gt;
		if(!is)&lt;br /&gt;
			return;&lt;br /&gt;
		if(name.length() == 0)&lt;br /&gt;
			getline(is,name);&lt;br /&gt;
		is&amp;gt;&amp;gt;m_age;&lt;br /&gt;
		is&amp;gt;&amp;gt;m_ssn;&lt;br /&gt;
		is.get();&lt;br /&gt;
	}&lt;br /&gt;
	int i;&lt;br /&gt;
	delete[] m_name;&lt;br /&gt;
	m_name = new char[(name.length()+1)];&lt;br /&gt;
	for(i = 0;i &amp;lt; (int)name.length();i++)&lt;br /&gt;
		m_name[i] = name[i];&lt;br /&gt;
	m_name[name.length()] = '\0';&lt;br /&gt;
}&lt;br /&gt;
void Person::Write(ostream&amp;amp; os) const&lt;br /&gt;
{&lt;br /&gt;
	if(os == cout)&lt;br /&gt;
		os&amp;lt;&amp;lt;&amp;quot;Name: &amp;quot;&amp;lt;&amp;lt;m_name&amp;lt;&amp;lt;&amp;quot;\nAge: &amp;quot;&amp;lt;&amp;lt;m_age&amp;lt;&amp;lt;&amp;quot;\nSSN: &amp;quot;&amp;lt;&amp;lt;m_ssn;&lt;br /&gt;
	else&lt;br /&gt;
		os&amp;lt;&amp;lt;m_name&amp;lt;&amp;lt;'\n'&amp;lt;&amp;lt;m_age&amp;lt;&amp;lt;'\n'&amp;lt;&amp;lt;m_ssn;&lt;br /&gt;
}&lt;br /&gt;
ostream&amp;amp; operator&amp;lt;&amp;lt;(ostream&amp;amp; os, const Person&amp;amp; p)&lt;br /&gt;
{&lt;br /&gt;
	p.Write(os);&lt;br /&gt;
	return os;&lt;br /&gt;
}&lt;br /&gt;
istream&amp;amp; operator&amp;gt;&amp;gt;(istream&amp;amp; is, Person&amp;amp; p)&lt;br /&gt;
{&lt;br /&gt;
	p.Read(is);&lt;br /&gt;
	return is;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Student.h==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#pragma once&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;quot;Person.h&amp;quot;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
class Student : public virtual Person&lt;br /&gt;
{&lt;br /&gt;
private:&lt;br /&gt;
	float m_gpa;&lt;br /&gt;
public:&lt;br /&gt;
    Student();&lt;br /&gt;
	Student(char* name, int age, string ssn, float gpa);&lt;br /&gt;
    Student(const Student &amp;amp;s);&lt;br /&gt;
    const Student&amp;amp; operator=(const Student&amp;amp; s);&lt;br /&gt;
	float GPA() const;&lt;br /&gt;
	void GPA(float gpa);&lt;br /&gt;
	string Type() const;&lt;br /&gt;
    void Read(istream&amp;amp; is);&lt;br /&gt;
	void Write(ostream&amp;amp; os) const;&lt;br /&gt;
};&lt;br /&gt;
ostream&amp;amp; operator&amp;lt;&amp;lt;(ostream&amp;amp; os, const Student&amp;amp; s);&lt;br /&gt;
istream&amp;amp; operator&amp;gt;&amp;gt;(istream&amp;amp; is, Student&amp;amp; s);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Student.cpp==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;quot;Student.h&amp;quot;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
Student::Student() : Person(), m_gpa(0.0)&lt;br /&gt;
{}&lt;br /&gt;
Student::Student(char* name, int age, string ssn, float gpa) : Person(name, age, ssn), m_gpa(gpa)&lt;br /&gt;
{}&lt;br /&gt;
Student::Student(const Student &amp;amp;s) : Person(s), m_gpa(s.m_gpa)&lt;br /&gt;
{}&lt;br /&gt;
const Student&amp;amp; Student::operator=(const Student&amp;amp; s)&lt;br /&gt;
{&lt;br /&gt;
	if(this != &amp;amp;s)&lt;br /&gt;
	{&lt;br /&gt;
		Person::operator=(s);&lt;br /&gt;
		m_gpa = s.m_gpa;&lt;br /&gt;
	}&lt;br /&gt;
	return *this;&lt;br /&gt;
}&lt;br /&gt;
float Student::GPA() const&lt;br /&gt;
{&lt;br /&gt;
	return m_gpa;&lt;br /&gt;
}&lt;br /&gt;
void Student::GPA(float gpa)&lt;br /&gt;
{&lt;br /&gt;
	m_gpa = gpa;&lt;br /&gt;
}&lt;br /&gt;
string Student::Type() const&lt;br /&gt;
{&lt;br /&gt;
	return string(&amp;quot;This is a Student Object&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
void Student::Read(istream&amp;amp; is)&lt;br /&gt;
{&lt;br /&gt;
	Person::Read(is);&lt;br /&gt;
	if(is == cin)&lt;br /&gt;
	{&lt;br /&gt;
		cout&amp;lt;&amp;lt;&amp;quot;Enter the GPA: &amp;quot;&amp;lt;&amp;lt;flush;&lt;br /&gt;
		is&amp;gt;&amp;gt;m_gpa;&lt;br /&gt;
		is.get();&lt;br /&gt;
	}&lt;br /&gt;
	else&lt;br /&gt;
	{&lt;br /&gt;
		is&amp;gt;&amp;gt;m_gpa;&lt;br /&gt;
		is.get();&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
void Student::Write(ostream&amp;amp; os) const&lt;br /&gt;
{&lt;br /&gt;
	Person::Write(os);&lt;br /&gt;
	if(os == cout)&lt;br /&gt;
		os&amp;lt;&amp;lt;&amp;quot;\nGPA: &amp;quot;&amp;lt;&amp;lt;m_gpa;&lt;br /&gt;
	else&lt;br /&gt;
		os&amp;lt;&amp;lt;'\n'&amp;lt;&amp;lt;m_gpa;&lt;br /&gt;
}&lt;br /&gt;
ostream&amp;amp; operator&amp;lt;&amp;lt;(ostream&amp;amp; os, const Student&amp;amp; s)&lt;br /&gt;
{&lt;br /&gt;
	s.Write(os);&lt;br /&gt;
	return os;&lt;br /&gt;
}&lt;br /&gt;
istream&amp;amp; operator&amp;gt;&amp;gt;(istream&amp;amp; is, Student&amp;amp; s)&lt;br /&gt;
{&lt;br /&gt;
	s.Read(is);&lt;br /&gt;
	return is;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Voter.h==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#pragma once&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;quot;Person.h&amp;quot;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
class Voter : public virtual Person&lt;br /&gt;
{&lt;br /&gt;
private:&lt;br /&gt;
	 string m_partyAffiliation;&lt;br /&gt;
public:&lt;br /&gt;
    Voter();&lt;br /&gt;
    Voter(char * name, int age, string ssn, string partyAffiliation);&lt;br /&gt;
    Voter(const Voter &amp;amp;v);&lt;br /&gt;
    const Voter&amp;amp; operator=(const Voter&amp;amp; v);&lt;br /&gt;
    void PartyAffiliation(string partyAffiliation);&lt;br /&gt;
	string PartyAffiliation() const;&lt;br /&gt;
	string Type() const;&lt;br /&gt;
    void Read(istream&amp;amp; is);&lt;br /&gt;
	void Write(ostream&amp;amp; os) const;&lt;br /&gt;
};&lt;br /&gt;
ostream&amp;amp; operator&amp;lt;&amp;lt;(ostream&amp;amp; os, const Voter&amp;amp; v);&lt;br /&gt;
istream&amp;amp; operator&amp;gt;&amp;gt;(istream&amp;amp; is, Voter&amp;amp; v);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Voter.cpp==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;quot;Voter.h&amp;quot;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
Voter::Voter() : Person(), m_partyAffiliation(&amp;quot;&amp;quot;)&lt;br /&gt;
{}&lt;br /&gt;
Voter::Voter(char* name, int age, string ssn, string partyAffiliation) : Person(name, age, ssn), m_partyAffiliation(partyAffiliation)&lt;br /&gt;
{}&lt;br /&gt;
Voter::Voter(const Voter &amp;amp;v) : Person(v), m_partyAffiliation(v.m_partyAffiliation)&lt;br /&gt;
{}&lt;br /&gt;
const Voter&amp;amp; Voter::operator=(const Voter&amp;amp; v)&lt;br /&gt;
{&lt;br /&gt;
	if(this != &amp;amp;v)&lt;br /&gt;
	{&lt;br /&gt;
		Person::operator=(v);&lt;br /&gt;
		m_partyAffiliation = v.m_partyAffiliation;&lt;br /&gt;
	}&lt;br /&gt;
	return *this;&lt;br /&gt;
}&lt;br /&gt;
void Voter::PartyAffiliation(string partyAffiliation)&lt;br /&gt;
{&lt;br /&gt;
	m_partyAffiliation = partyAffiliation;&lt;br /&gt;
}&lt;br /&gt;
string Voter::PartyAffiliation() const&lt;br /&gt;
{&lt;br /&gt;
	return m_partyAffiliation;&lt;br /&gt;
}&lt;br /&gt;
string Voter::Type() const&lt;br /&gt;
{&lt;br /&gt;
	return string(&amp;quot;This is a Voter Object&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
void Voter::Read(istream&amp;amp; is)&lt;br /&gt;
{&lt;br /&gt;
	Person::Read(is);&lt;br /&gt;
	if(is == cin)&lt;br /&gt;
	{&lt;br /&gt;
		cout&amp;lt;&amp;lt;&amp;quot;Enter the party affiliation: &amp;quot;&amp;lt;&amp;lt;flush;&lt;br /&gt;
		is&amp;gt;&amp;gt;m_partyAffiliation;&lt;br /&gt;
		is.get();&lt;br /&gt;
	}&lt;br /&gt;
	else&lt;br /&gt;
		is&amp;gt;&amp;gt;m_partyAffiliation;&lt;br /&gt;
}&lt;br /&gt;
void Voter::Write(ostream&amp;amp; os) const&lt;br /&gt;
{&lt;br /&gt;
	Person::Write(os);&lt;br /&gt;
	if(os == cout)&lt;br /&gt;
		os&amp;lt;&amp;lt;&amp;quot;\nParty affiliation: &amp;quot;&amp;lt;&amp;lt;m_partyAffiliation;&lt;br /&gt;
	else&lt;br /&gt;
		os&amp;lt;&amp;lt;'\n'&amp;lt;&amp;lt;m_partyAffiliation;&lt;br /&gt;
}&lt;br /&gt;
ostream&amp;amp; operator&amp;lt;&amp;lt;(ostream&amp;amp; os, const Voter&amp;amp; v)&lt;br /&gt;
{&lt;br /&gt;
	v.Write(os);&lt;br /&gt;
	return os;&lt;br /&gt;
}&lt;br /&gt;
istream&amp;amp; operator&amp;gt;&amp;gt;(istream&amp;amp; is, Voter&amp;amp; v)&lt;br /&gt;
{&lt;br /&gt;
	v.Read(is);&lt;br /&gt;
	return is;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==StudentVoter.h==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#pragma once&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;quot;Student.h&amp;quot;&lt;br /&gt;
#include &amp;quot;Voter.h&amp;quot;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
class StudentVoter : public Student, public Voter&lt;br /&gt;
{&lt;br /&gt;
private:&lt;br /&gt;
	//No additional data.&lt;br /&gt;
public:&lt;br /&gt;
	StudentVoter();&lt;br /&gt;
	StudentVoter(char* name, int age, string ssn, float gpa, string partyAffiliation);&lt;br /&gt;
	StudentVoter(const StudentVoter&amp;amp; sv);&lt;br /&gt;
	const StudentVoter&amp;amp; operator=(const StudentVoter&amp;amp; sv);&lt;br /&gt;
	string Type() const;&lt;br /&gt;
    void Read(istream&amp;amp; is);&lt;br /&gt;
	void Write(ostream&amp;amp; os) const;&lt;br /&gt;
};&lt;br /&gt;
ostream&amp;amp; operator&amp;lt;&amp;lt;(ostream&amp;amp; os, const StudentVoter&amp;amp; sv);&lt;br /&gt;
istream&amp;amp; operator&amp;gt;&amp;gt;(istream&amp;amp; is, StudentVoter&amp;amp; sv);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==StudentVoter.cpp==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;quot;StudentVoter.h&amp;quot;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
StudentVoter::StudentVoter() : Student(), Voter(), Person()&lt;br /&gt;
{}&lt;br /&gt;
StudentVoter::StudentVoter(char* name, int age, string ssn, float gpa, string partyAffiliation)&lt;br /&gt;
: Student(name,age,ssn,gpa), Voter(name,age,ssn,partyAffiliation), Person(name,age,ssn)&lt;br /&gt;
{}&lt;br /&gt;
StudentVoter::StudentVoter(const StudentVoter&amp;amp; sv) : Student(sv), Voter(sv), Person(sv)&lt;br /&gt;
{}&lt;br /&gt;
const StudentVoter&amp;amp; StudentVoter::operator=(const StudentVoter&amp;amp; sv)&lt;br /&gt;
{&lt;br /&gt;
	if(this != &amp;amp;sv)&lt;br /&gt;
	{&lt;br /&gt;
		Student::operator=(sv);&lt;br /&gt;
		PartyAffiliation(sv.PartyAffiliation());&lt;br /&gt;
	}&lt;br /&gt;
	return *this;&lt;br /&gt;
}&lt;br /&gt;
string StudentVoter::Type() const&lt;br /&gt;
{&lt;br /&gt;
	return string(&amp;quot;This is a StudentVoter Object&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
void StudentVoter::Read(istream&amp;amp; is)&lt;br /&gt;
{&lt;br /&gt;
	string partyaffiliation;&lt;br /&gt;
	Student::Read(is);&lt;br /&gt;
	if (is == cin)&lt;br /&gt;
	{&lt;br /&gt;
		cout&amp;lt;&amp;lt;&amp;quot;Enter the party affiliation: &amp;quot;&amp;lt;&amp;lt;flush;&lt;br /&gt;
		is&amp;gt;&amp;gt;partyaffiliation;&lt;br /&gt;
		is.get();&lt;br /&gt;
	}&lt;br /&gt;
	else&lt;br /&gt;
	{&lt;br /&gt;
		is&amp;gt;&amp;gt;partyaffiliation;&lt;br /&gt;
		is.get();&lt;br /&gt;
	}&lt;br /&gt;
	PartyAffiliation(partyaffiliation);&lt;br /&gt;
}&lt;br /&gt;
void StudentVoter::Write(ostream&amp;amp; os) const&lt;br /&gt;
{&lt;br /&gt;
	Student::Write(os);&lt;br /&gt;
	if (os == cout)&lt;br /&gt;
		os&amp;lt;&amp;lt;&amp;quot;\nParty affiliation: &amp;quot;&amp;lt;&amp;lt;PartyAffiliation();&lt;br /&gt;
	else&lt;br /&gt;
		os&amp;lt;&amp;lt;'\n'&amp;lt;&amp;lt;PartyAffiliation();&lt;br /&gt;
}&lt;br /&gt;
ostream&amp;amp; operator&amp;lt;&amp;lt;(ostream&amp;amp; os, const StudentVoter&amp;amp; sv)&lt;br /&gt;
{&lt;br /&gt;
	sv.Write(os);&lt;br /&gt;
	return os;&lt;br /&gt;
}&lt;br /&gt;
istream&amp;amp; operator&amp;gt;&amp;gt;(istream&amp;amp; is, StudentVoter&amp;amp; sv)&lt;br /&gt;
{&lt;br /&gt;
	sv.Read(is);&lt;br /&gt;
	return is;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Faculty.h==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#pragma once&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;vector&amp;gt;&lt;br /&gt;
#include &amp;quot;Person.h&amp;quot;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
class Faculty : public Person&lt;br /&gt;
{&lt;br /&gt;
private:&lt;br /&gt;
	int m_numberOfDegrees;&lt;br /&gt;
	string* m_degrees;&lt;br /&gt;
public:&lt;br /&gt;
	Faculty();&lt;br /&gt;
	Faculty(char* name, int age, string ssn, int numberOfDegrees, string* degrees);&lt;br /&gt;
    Faculty(const Faculty &amp;amp;f);&lt;br /&gt;
	~Faculty();&lt;br /&gt;
    const Faculty&amp;amp; operator=(const Faculty&amp;amp; f);&lt;br /&gt;
	void NumberOfDegrees(int degrees);&lt;br /&gt;
	int NumberOfDegrees() const;&lt;br /&gt;
	void Degrees(const string* degrees, int numberOfDegrees);&lt;br /&gt;
	string* Degrees(int &amp;amp;numberOfDegrees) const;&lt;br /&gt;
	void Degrees(const vector&amp;lt;string&amp;gt; &amp;amp;vs);&lt;br /&gt;
	vector&amp;lt;string&amp;gt; Degrees() const;&lt;br /&gt;
	string Type() const;&lt;br /&gt;
    void Read(istream&amp;amp; is);&lt;br /&gt;
	void Write(ostream&amp;amp; os) const;&lt;br /&gt;
};&lt;br /&gt;
ostream&amp;amp; operator&amp;lt;&amp;lt;(ostream&amp;amp; os, const Faculty&amp;amp; f);&lt;br /&gt;
istream&amp;amp; operator&amp;gt;&amp;gt;(istream&amp;amp; is, Faculty&amp;amp; f);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Faculty.cpp==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;quot;Faculty.h&amp;quot;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
Faculty::Faculty() : Person(), m_numberOfDegrees(0)&lt;br /&gt;
{&lt;br /&gt;
	int i;&lt;br /&gt;
	m_degrees = new string[3];&lt;br /&gt;
	for(i = 0;i &amp;lt; 2; i++)&lt;br /&gt;
		m_degrees[i] = '*';&lt;br /&gt;
	m_degrees[2] = '\0';&lt;br /&gt;
}&lt;br /&gt;
Faculty::Faculty(char* name, int age, string ssn, int numberOfDegrees, string* degrees)&lt;br /&gt;
: Person(name, age, ssn), m_numberOfDegrees(numberOfDegrees)&lt;br /&gt;
{&lt;br /&gt;
	if(m_numberOfDegrees &amp;gt; 0)&lt;br /&gt;
	{&lt;br /&gt;
		int i;&lt;br /&gt;
		m_degrees = new string[m_numberOfDegrees];&lt;br /&gt;
		for(i = 0;i &amp;lt; m_numberOfDegrees;i++)&lt;br /&gt;
			m_degrees[i] = degrees[i];&lt;br /&gt;
	}&lt;br /&gt;
	else&lt;br /&gt;
		m_degrees = NULL;&lt;br /&gt;
}&lt;br /&gt;
Faculty::Faculty(const Faculty&amp;amp; f) : Person(f), m_numberOfDegrees(f.m_numberOfDegrees)&lt;br /&gt;
{&lt;br /&gt;
	if(m_numberOfDegrees &amp;lt; 1)&lt;br /&gt;
		m_degrees = NULL;&lt;br /&gt;
	else&lt;br /&gt;
	{&lt;br /&gt;
		int i;&lt;br /&gt;
		m_degrees = new string[m_numberOfDegrees];&lt;br /&gt;
		for (i = 0;i &amp;lt; m_numberOfDegrees;i++)&lt;br /&gt;
			m_degrees[i] = f.m_degrees[i];&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
Faculty::~Faculty()&lt;br /&gt;
{&lt;br /&gt;
	if(m_degrees != NULL)&lt;br /&gt;
	{&lt;br /&gt;
		delete[] m_degrees;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
const Faculty&amp;amp; Faculty::operator=(const Faculty&amp;amp; f)&lt;br /&gt;
{&lt;br /&gt;
	if(this != &amp;amp;f)&lt;br /&gt;
	{&lt;br /&gt;
		Person::operator=(f);&lt;br /&gt;
		m_numberOfDegrees =	f.m_numberOfDegrees;&lt;br /&gt;
	}&lt;br /&gt;
	return *this;&lt;br /&gt;
}&lt;br /&gt;
void Faculty::NumberOfDegrees(int numberOfDegrees)&lt;br /&gt;
{&lt;br /&gt;
	m_numberOfDegrees = numberOfDegrees;&lt;br /&gt;
}&lt;br /&gt;
int Faculty::NumberOfDegrees() const&lt;br /&gt;
{&lt;br /&gt;
	return m_numberOfDegrees;&lt;br /&gt;
}&lt;br /&gt;
void Faculty::Degrees(const string* degrees, int numberOfDegrees)&lt;br /&gt;
{&lt;br /&gt;
	delete[] m_degrees;&lt;br /&gt;
	m_numberOfDegrees = numberOfDegrees;&lt;br /&gt;
	if(m_numberOfDegrees &amp;lt; 1)&lt;br /&gt;
		m_degrees = NULL;&lt;br /&gt;
	else&lt;br /&gt;
	{&lt;br /&gt;
		int i;&lt;br /&gt;
		m_degrees = new string[m_numberOfDegrees];&lt;br /&gt;
		for (i = 0;i &amp;lt; m_numberOfDegrees;i++)&lt;br /&gt;
			m_degrees[i] = degrees[i];&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
string* Faculty::Degrees(int &amp;amp;numberOfDegrees) const&lt;br /&gt;
{&lt;br /&gt;
	string* temp;&lt;br /&gt;
	numberOfDegrees = m_numberOfDegrees;&lt;br /&gt;
&lt;br /&gt;
	if(m_numberOfDegrees &amp;lt; 1)&lt;br /&gt;
		temp = NULL;&lt;br /&gt;
	else&lt;br /&gt;
	{&lt;br /&gt;
		int i;&lt;br /&gt;
		temp = new string[numberOfDegrees];&lt;br /&gt;
		for(i = 0;i &amp;lt; m_numberOfDegrees;i++)&lt;br /&gt;
			temp[i] = m_degrees[i];&lt;br /&gt;
	}&lt;br /&gt;
	return temp;&lt;br /&gt;
}&lt;br /&gt;
void Faculty::Degrees(const vector&amp;lt;string&amp;gt; &amp;amp;vs)&lt;br /&gt;
{&lt;br /&gt;
	delete [] m_degrees;&lt;br /&gt;
	m_numberOfDegrees = static_cast&amp;lt;int&amp;gt;(vs.size());&lt;br /&gt;
	if(m_numberOfDegrees &amp;lt; 1)&lt;br /&gt;
		m_degrees = NULL;&lt;br /&gt;
	else&lt;br /&gt;
	{&lt;br /&gt;
		int i;&lt;br /&gt;
		m_degrees = new string[m_numberOfDegrees];&lt;br /&gt;
		&lt;br /&gt;
		for(i = 0;i &amp;lt; m_numberOfDegrees;i++)&lt;br /&gt;
			m_degrees[i] = vs[i];&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
vector&amp;lt;string&amp;gt; Faculty::Degrees() const&lt;br /&gt;
{&lt;br /&gt;
	vector&amp;lt;string&amp;gt; temp;&lt;br /&gt;
	if(m_numberOfDegrees &amp;gt; 0)&lt;br /&gt;
	{&lt;br /&gt;
		int i;&lt;br /&gt;
		for(i = 0;i &amp;lt; m_numberOfDegrees;i++)&lt;br /&gt;
			temp.push_back(m_degrees[i]);&lt;br /&gt;
	}&lt;br /&gt;
	return temp;&lt;br /&gt;
}&lt;br /&gt;
string Faculty::Type() const&lt;br /&gt;
{&lt;br /&gt;
	return string(&amp;quot;This is a Faculty Object&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
void Faculty::Read(istream&amp;amp; is)&lt;br /&gt;
{&lt;br /&gt;
	Person::Read(is);&lt;br /&gt;
	delete[] m_degrees;&lt;br /&gt;
	if(is == cin)&lt;br /&gt;
	{&lt;br /&gt;
		cout&amp;lt;&amp;lt;&amp;quot;Enter the number of degrees: &amp;quot;&amp;lt;&amp;lt;flush;&lt;br /&gt;
		is&amp;gt;&amp;gt;m_numberOfDegrees;&lt;br /&gt;
		is.get();&lt;br /&gt;
	}&lt;br /&gt;
	else&lt;br /&gt;
	{&lt;br /&gt;
		is&amp;gt;&amp;gt;m_numberOfDegrees;&lt;br /&gt;
		is.get();&lt;br /&gt;
	}&lt;br /&gt;
	if(m_numberOfDegrees &amp;lt; 1)&lt;br /&gt;
		m_degrees = NULL;&lt;br /&gt;
	else&lt;br /&gt;
	{&lt;br /&gt;
		int i;&lt;br /&gt;
		m_degrees = new string[m_numberOfDegrees];&lt;br /&gt;
		for (i = 0;i &amp;lt; m_numberOfDegrees;i++)&lt;br /&gt;
		{&lt;br /&gt;
			if (is == cin)&lt;br /&gt;
				cout&amp;lt;&amp;lt;&amp;quot;Enter the name of degree &amp;quot;&amp;lt;&amp;lt;(i+1)&amp;lt;&amp;lt;&amp;quot;: &amp;quot;&amp;lt;&amp;lt;flush;&lt;br /&gt;
			getline(is,m_degrees[i]);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
void Faculty::Write(ostream&amp;amp; os) const&lt;br /&gt;
{&lt;br /&gt;
	Person::Write(os);&lt;br /&gt;
	if(os == cout)&lt;br /&gt;
		os&amp;lt;&amp;lt;&amp;quot;\nNumber of Degrees: &amp;quot;&amp;lt;&amp;lt;m_numberOfDegrees;&lt;br /&gt;
	else&lt;br /&gt;
		os&amp;lt;&amp;lt;'\n'&amp;lt;&amp;lt;m_numberOfDegrees;&lt;br /&gt;
	if(m_numberOfDegrees &amp;lt; 1)&lt;br /&gt;
		return;&lt;br /&gt;
	else&lt;br /&gt;
	{&lt;br /&gt;
		int i;&lt;br /&gt;
		for (i = 0;i &amp;lt; m_numberOfDegrees;i++)&lt;br /&gt;
		{&lt;br /&gt;
			if(os == cout)&lt;br /&gt;
				os&amp;lt;&amp;lt;&amp;quot;\nDegree &amp;quot;&amp;lt;&amp;lt;(i+1)&amp;lt;&amp;lt;&amp;quot;: &amp;quot;&amp;lt;&amp;lt;m_degrees[i];&lt;br /&gt;
			else&lt;br /&gt;
				os&amp;lt;&amp;lt;'\n'&amp;lt;&amp;lt;m_degrees[i];&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
ostream&amp;amp; operator&amp;lt;&amp;lt;(ostream&amp;amp; os, const Faculty&amp;amp; f)&lt;br /&gt;
{&lt;br /&gt;
	f.Write(os);&lt;br /&gt;
	return os;&lt;br /&gt;
}&lt;br /&gt;
istream&amp;amp; operator&amp;gt;&amp;gt;(istream&amp;amp; is, Faculty&amp;amp; f)&lt;br /&gt;
{&lt;br /&gt;
	f.Read(is);&lt;br /&gt;
	return is;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==GradStudent.h==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#pragma once&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;quot;Student.h&amp;quot;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
class GradStudent : public Student&lt;br /&gt;
{&lt;br /&gt;
private:&lt;br /&gt;
	string m_researchArea;&lt;br /&gt;
public:&lt;br /&gt;
	GradStudent();&lt;br /&gt;
    GradStudent(char * name, int age, string ssn, float gpa, string researchArea);&lt;br /&gt;
    GradStudent(const GradStudent &amp;amp;gs);&lt;br /&gt;
    const GradStudent&amp;amp; operator=(const GradStudent&amp;amp; gs);&lt;br /&gt;
	string ResearchArea() const;&lt;br /&gt;
	void ResearchArea(string researcharea);&lt;br /&gt;
	string Type() const;&lt;br /&gt;
    void Read(istream&amp;amp; is);&lt;br /&gt;
	void Write(ostream&amp;amp; os) const;&lt;br /&gt;
};&lt;br /&gt;
ostream&amp;amp; operator&amp;lt;&amp;lt;(ostream&amp;amp; os, const GradStudent&amp;amp; gs);&lt;br /&gt;
istream&amp;amp; operator&amp;gt;&amp;gt;(istream&amp;amp; is, GradStudent&amp;amp; gs);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==GradStudent.cpp==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;quot;GradStudent.h&amp;quot;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
GradStudent::GradStudent() : Student(), m_researchArea(&amp;quot;&amp;quot;)&lt;br /&gt;
{}&lt;br /&gt;
GradStudent::GradStudent(char * name, int age, string ssn, float gpa, string researchArea)&lt;br /&gt;
: Student(name, age, ssn, gpa), m_researchArea(researchArea)&lt;br /&gt;
{}&lt;br /&gt;
GradStudent::GradStudent(const GradStudent&amp;amp; gs) : Student(gs), m_researchArea(gs.m_researchArea)&lt;br /&gt;
{}&lt;br /&gt;
const GradStudent&amp;amp; GradStudent::operator=(const GradStudent&amp;amp; gs)&lt;br /&gt;
{&lt;br /&gt;
	if(this != &amp;amp;gs)&lt;br /&gt;
	{&lt;br /&gt;
		Student::operator=(gs);&lt;br /&gt;
		m_researchArea = gs.m_researchArea;&lt;br /&gt;
	}&lt;br /&gt;
	return *this;&lt;br /&gt;
}&lt;br /&gt;
string GradStudent::ResearchArea() const&lt;br /&gt;
{&lt;br /&gt;
	return m_researchArea;&lt;br /&gt;
}&lt;br /&gt;
void GradStudent::ResearchArea(string researchArea)&lt;br /&gt;
{&lt;br /&gt;
	m_researchArea = researchArea;&lt;br /&gt;
}&lt;br /&gt;
string GradStudent::Type() const&lt;br /&gt;
{&lt;br /&gt;
	return string(&amp;quot;This is a GradStudent Object&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
void GradStudent::Read(istream&amp;amp; is)&lt;br /&gt;
{&lt;br /&gt;
	Student::Read(is);&lt;br /&gt;
	if(is == cin)&lt;br /&gt;
	{&lt;br /&gt;
		cout&amp;lt;&amp;lt;&amp;quot;Enter the Research area: &amp;quot;&amp;lt;&amp;lt;flush;&lt;br /&gt;
		is&amp;gt;&amp;gt;m_researchArea;&lt;br /&gt;
		is.get();&lt;br /&gt;
	}&lt;br /&gt;
	else&lt;br /&gt;
	{&lt;br /&gt;
		is&amp;gt;&amp;gt;m_researchArea;&lt;br /&gt;
		is.get();&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
void GradStudent::Write(ostream&amp;amp; os) const&lt;br /&gt;
{&lt;br /&gt;
	Student::Write(os);&lt;br /&gt;
	if(os == cout)&lt;br /&gt;
		os&amp;lt;&amp;lt;&amp;quot;\nResearch area: &amp;quot;&amp;lt;&amp;lt;m_researchArea;&lt;br /&gt;
	else&lt;br /&gt;
		os&amp;lt;&amp;lt;'\n'&amp;lt;&amp;lt;m_researchArea;&lt;br /&gt;
}&lt;br /&gt;
ostream&amp;amp; operator&amp;lt;&amp;lt;(ostream&amp;amp; os, const GradStudent&amp;amp; gs)&lt;br /&gt;
{&lt;br /&gt;
	gs.Write(os);&lt;br /&gt;
	return os;&lt;br /&gt;
}&lt;br /&gt;
istream&amp;amp; operator&amp;gt;&amp;gt;(istream&amp;amp; is, GradStudent&amp;amp; gs)&lt;br /&gt;
{&lt;br /&gt;
	gs.Read(is);&lt;br /&gt;
	return is;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Derek Elder</name></author>
	</entry>
</feed>