// student7.cc #include #include using namespace std; class Student { private: string Name; bool Auditor; double *Grades; public: // Constructor Student(string theName, bool isAuditor = false) :Name(theName), Auditor(isAuditor) { Grades = new double[3]; for (int i=0; i<3; i++) Grades[i] = 0.0; } // Destructor ~Student() { delete [] Grades; // delete the dynamically allocated array } void SetGrade(int whichGrade, double grade) { Grades[whichGrade] = grade; } // friend declaration gives function outside class access to private bits friend class PrintHelper; }; // done defining and declaring Student class class PrintHelper { public: void PrintStudentGrades(const Student& Input) { if (Input.Auditor) cout << "Auditor "; else cout << "Student "; cout << Input.Name << " grades: "; cout << Input.Grades[0] << "," << Input.Grades[1]; cout << "," << Input.Grades[2]; cout << ". Course grade: "; cout << (Input.Grades[0] + Input.Grades[1] + Input.Grades[2]) / 3.0; cout << endl; } }; int main() { Student Student1("John Smith"); Student1.SetGrade(0, 80.0); PrintHelper X; X.PrintStudentGrades(Student1); }