Программалау оқулық Алматы, 012 Қазақстан Республикасы Білім жəне ғылым министрлігінің «Оқулық»


monstr класына достас екі функцияның сипатта- малары берілген.  kill



Pdf көрінісі
бет178/465
Дата09.01.2023
өлшемі3,66 Mb.
#60709
түріПрограмма
1   ...   174   175   176   177   178   179   180   181   ...   465
Байланысты:
аибм сплюс

 monstr
класына достас екі функцияның сипатта-
малары берілген. 
kill 
функциясы 
hero
класының əдісі болып табылады, ал 
steal_ammo
функциясы ешбір класқа жатпайды. Екі функцияға да параметр 
ретінде 
monstr
класының объектісіне сілтеме беріледі. 
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;}
Достас функцияларды мүмкіндігінше аз қолдануға тырысу керек, өйткені 
олар инкапсуляция қағидасына қайшы келеді (бұзады), осылайша программа-
ны түзетіп жөндеуді жəне өзгертуді қиындатады. 
Достас класс
Егер кез келген бір кластың барлық əдістері басқа кластың жасырын 
өрістерін пайдалануы қажет болса, онда ол класс түгелдей 
friend
түйінді 
сөзінің көмегімен достас класс ретінде жарияланады. Төменде келтірілген мы-
салда
 
mistress
 класы 
hero 
класына достас болып жарияланған:
class hero{
 ...
friend class mistress;
}
class mistress{
 ...
void f1(); 
void f2();
}


204
Мысалдағы 

жəне 
f2 
функциялары 
hero
 класына достас болып табы-
лады (
friend
түйінді сөзі жазылмағанына қарамастан) жəне оның барлық 
өрістеріне қол жеткізе алады. 
Мұндағы 


Достарыңызбен бөлісу:
1   ...   174   175   176   177   178   179   180   181   ...   465




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет