class monstr; // Кластың алдын ала анықталуы
class hero{
public:
void kill(monstr &);
...
};
class monstr{
...
friend int steal_ammo(monstr &);
friend void hero::kill(monstr &);
// hero класы ертерек анықталуы керек
};
int steal_ammo(monstr &M) {return --M.ammo;}
void hero::kill(monstr &M) {
M.health = 0; M.ammo = 0;}
Достас функцияларды мүмкіндігінше аз қолдануға тырысу керек, өйткені
олар инкапсуляция қағидасына қайшы келеді (бұзады), осылайша программа-
ны түзетіп жөндеуді жəне өзгертуді қиындатады.
Достас класс
Егер кез келген бір кластың барлық əдістері басқа кластың жасырын
өрістерін пайдалануы қажет болса, онда ол класс түгелдей
Достарыңызбен бөлісу: |