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


int get_health() {return health;}



Pdf көрінісі
бет191/466
Дата20.07.2022
өлшемі3,66 Mb.
#37798
түріПрограмма
1   ...   187   188   189   190   191   192   193   194   ...   466
int get_health() {return health;}
int get_ammo() {return ammo;}
əдістеріне (сонымен қатар, кластың сигнатурасы дəл осындай болып келетін 
басқа да əдістеріне) нұсқауыштың сипаттамасы келесідей түрде болады:
int (monstr:: *pget)(); 


214
Мұндай нұсқауышты функцияның параметрі ретінде беруге болады. Бұл 
функцияға əдістің атауын беру мүмкіндігін жүзеге асырады:
void fun(int (monstr:: *pget)()){
(*this.*pget)(); // Функцияны .* операциясы 
// арқылы шақыру
(this->*pget)(); // Функцияны ->* операциясы 
// арқылы шақыру
}
Нұсқауышты нақты көрсетілген əдіске адресті алу операциясының 
көмегімен баптауға болады:
// Нұсқауышқа мəн меншіктеу: 
pget = & monstr::get_health; 
monstr Vasia, *p; 
p = new monstr;
// Функцияны .* операциясы арқылы шақыру:
int Vasin_health = (Vasia.*pget)(); 
// Функцияны ->* операциясы арқылы шақыру:
int p_health = (p->*pget)();
Төменде нұсқауыштарды класс əдістеріне қолдану ережелері көрсетілген:
□ Əдіс нұсқауышына тек сəйкес тақырыбы бар əдістердің адрестерін 
меншіктеуге болады.
□ Кластың статикалық əдісіне нұсқауышты анықтауға болмайды.
□ Əдіске нұсқауышты класс элементі болып табылмайтын қарапайым 
функция нұсқауышына түрлендіруге болмайды. 
Қарапайым функцияларға нұсқауыштар сияқты əдістерге нұсқауыштар 
атауы белгісіз əдістерді шақыру керек болған кезде қолданылады. Бірақ оның 
айнымалыға немесе қарапайым функцияға нұсқауыштан айырмашылығы – 
əдістерге нұсқауыштар жадының белгілі бір адресіне сілтеме жасамайды. Ол
жиымдағы индекске көбірек ұқсайды, өйткені ығыстыру шамасын тағайындайды. 
Компьютер жадындағы нақты көрсетілген адрес əдіске нұсқауышты нақты 
көрсетілген объектіге нұсқауышпен үйлестіру арқылы алынады.
ЕСКЕРТУ 
Нұсқауыштар арқылы шақырылатын əдістер виртуалды болуы мүмкін. Мұндайда 
нұсқауыш қолданылған объект типіне сəйкес келетін əдіс шақырылады.
Класс өрісіне нұсқауыштың форматы:


Достарыңызбен бөлісу:
1   ...   187   188   189   190   191   192   193   194   ...   466




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

    Басты бет