#pragma once #include class PersonT { public: PersonT(); void Name(std::string newName); std::string Name() const; virtual std::string Role() const; private: std::string name{"No Name"}; }; class StudentT: public PersonT { public: StudentT(); std::string Role() const override; float GPA() const; void GPA(float newGPA); private: float gpa{0.0}; }; class GradStudentT : public StudentT { public: std::string Role() const override { return role; } void Role(std::string newRole){ role = newRole; } private : std::string role{"TA"}; }; class ProfessorT: public PersonT { public: ProfessorT(); std::string Role() const override; int Classes() const; void Classes(int newCount); private: int classes{0}; }; class AdminstratorT : public PersonT { public: bool Decide(std::string){ return false; } private: int decision{0}; };