Энергетика



Pdf көрінісі
бет7/23
Дата07.02.2022
өлшемі1,03 Mb.
#91462
түріПрограмма
1   2   3   4   5   6   7   8   9   10   ...   23
Байланысты:
is 1

 
k=5; 
const int
 
&ref=k; //ref – тұрақтыға сілтеме 
Осы анықтамалардан: 
k =0; // қалыпты меншіктеу операторы 
ref =0; // қате, себебі сілтеме тұрақтыға жарияланған 
Сілтемелерді 
анықтауда 
оларды 
міндетті 
түрде 
атаулау 
(инициализация) талап етіледі. Алайда, сілтемелердің сипаттамасында оның 
болуы міндетті емес, бірақ та тыйым салынбайды. 
Осындай сілтемелердің сипаттамаларына мыналар қатысты: 
- сыртқы сілтемелер сипаттамасы (
extern 
ерекшелегішімен (специфика- 
торымен)); 
- класс компоненттеріне сілтемелер сипаттамасы; 
- функцияның формальды параметрлерін ерекшелеу; 
- функция қайтаратын мән типінің сипатталуы. 
С++ тіліне сілтемелерді енгізудің негізгі себебі (тек қана С++ үшін 
емес), функциялармен параметрлер аппараты арқылы алмасу тиімділігін және 
функцияны шақыруды сол тұрғыдағы мән ретінде мақсатты қолдану 
мүмкіндігін арттыру қажеттілігінен болды. Мысалы:
int f1(int
 
&k) // функция бүтін санды қайтарады 
{return k;}
int &f2(int &k) // функция k айнымалысына сілтемені қайтарады
{return k;} 
Екі функцияда k енгізілетін параметрінің сандық мәніне сәйкес келетін 
мәнді қайтарады. Екінші жағдай үшін шақырудың келесі түрі мүмкін: 
int main(void) 
{int n=3; 
f2(n)=7; 
// n жетіге тең болады 
return 0; 

Функцияға нұсқауышқа ұқсас функцияға сілтеме форматы анықталады:
функция_типі 
(&сілтеме_аты) 
(функция_параметрлерінің_ерекшеліктері) 
=атаулаушы өрнек; Мысалы: 
 
int func(float, int);
// функция прототипі
int (&ref) (float, int)=func; // сілтеменің анықталуы 


12 
Функция атының жақшасыз (және параметрлерсіз) қолданылуы функция 
адресі ретінде қабылданады. 
Функцияға сілтеме функцияның негізгі атының барлық құқықтарына ие, 
яғни оның синонимі (псевдонимі) болып табылады. Функцияға сілтеме 
(нұсқауышқа сілтеме) мәнін өзгерту мүмкін емес, сондықтан функцияға 
нұсқауыштар сілтемеге қарағанда үлкен ауқымға ие. Келесі программа 
функцияны шақыруды негізгі аты бойынша, нұсқауышпен және сілтеме 
бойынша орындауды суреттейді: 
#include  
void func(char lit)
{cout<int main (void) 
{void (*pf)(char);
// pf - функцияға нұсқауыш 
void(&ref)(char)=func; // ref - функцияға сілтеме 
func(‘A’);
// атымен шақыру 
pf=func; 
// нұсқауышқа функция адресі меншіктеледі 
(*pf)(‘B’); // нұсқауыш көмегімен адресі бойынша шақыру 
ref(‘C’);
// функцияны сілтеме арқылы шақыру 
return 0; 

Функциямен сілтемені қайтару бірнеше функцияларға бірнеше қайтара 
әрекеттесуді ұйымдастыруға мүмкіндік береді. Осы әрекеттесу нәтижесінде 
бір объектіні бірнеше қайтара әр түрлі ережемен өзгертуге болады. 
Бақылау сұрақтары:
1)
Сілтеме дегеніміз не?
2)
Сілтеме параметрлерінің қандай артықшылығы мен кемшіліктері 
бар? 
3)
Объектіні сілтеме арқылы функцияға бергенде оның көшірмесі 
құрыла ма? 
4)
Сілтеме параметрлерін қолданған кезде адрес аргументі қалай 
жіберіледі? 
5)
Тәуелсіз сілтеме деген не? 


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   10   ...   23




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

    Басты бет