05.09.2016 Views

Стефан Р. - С++ Для чайников

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 Часть ///. "Классическое" программирование

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!