You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
float gpa;<br />
};<br />
void Teacher::assignGrades {);<br />
{<br />
//эта функция имеет доступ к<br />
//защищенным членам класса Student<br />
}<br />
В отличие от примера с функциями — не членами, функция-член класса должна<br />
быть объявлена перед тем, как класс student объявит ее другом.<br />
Существующий класс может быть объявлен как друг некоторого другого класса целиком.<br />
Это означает, что все функции-члены класса становятся друзьями другого<br />
класса, например:<br />
class Student;<br />
class Teacher<br />
{<br />
protected:<br />
int noStudents;<br />
Student *pList[100];<br />
public:<br />
void assignGrades();<br />
};<br />
class Student<br />
{<br />
friend class Teacher;<br />
public: • - - •<br />
//те же открытые члены, что и раньше<br />
protected:<br />
Teacher *pT;<br />
int semesterHours; //количество часов в семестре<br />
float gpa;<br />
);<br />
Теперь любая функция-член класса Teacher имеет доступ ко всем защищенным<br />
членам класса student. Объявление одного класса другом другого неразрывно связывает<br />
два класса.<br />
176 Часть ///. "Классическое" программирование