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



Pdf көрінісі
бет210/465
Дата09.01.2023
өлшемі3,66 Mb.
#60709
түріПрограмма
1   ...   206   207   208   209   210   211   212   213   ...   465
Байланысты:
аибм сплюс

template void List::print() 
{ /* функция тұлғасы */ }
Мұндағы 

– шаблон параметрінің сипаттамасы, 
void
– 
функцияның қайтаратын мəнінің типі, 
List
– класс атауы, 

– шаблон 
параметрі, 
print
– параметрлерсіз функцияның атауы.
Бірнеше параметр болған жағдайда 
параметрлер_сипаттамасындағы
жəне 
шаблон_параметрлеріндегі
олардың орналасу реттілігі бірдей болуы 
керек, мысалы:
template
 
class T2> struct A{ 
void fl ();
};
template void A::f1(){...}
Төменде шаблондарды сипаттау ережелері көрсетілген.
□ Жергілікті кластар шаблондарды өздерінің элементтері ретінде кабыл-
дай алмайды.
□ Əдістердің шаблондары виртуалды бола алмайды.
□ Класс шаблондарында статикалық элементтер, достас функциялар 
жəне кластар болуы мүмкін.
□ Шаблондар басқа шаблондардан немесе қарапайым кластардан туынды 
болып, сонымен қатар шаблондар мен қарапайым кластар үшін базалық 
болуы да мүмкін. 
□ Шаблон 
ішінде 
friend
-шаблондарды анықтауға болмайды.


234
Шаблонның мысалы ретінде 
List
екібайланысты тізімінің параметрлен-
ген класының толық сипаттамасын қарастырайық. 
template class List{ 
class Node{ 
public: 
Data d;
Node *next, *prev;
Node(Data dat = 0){d = dat; next = 0; prev = 0;}
};
Node *pbeg, *pend; 
public:
List(){pbeg = 0; pend = 0;} 
~List();
void add(Data d);
Node * fi nd(Data i);


Достарыңызбен бөлісу:
1   ...   206   207   208   209   210   211   212   213   ...   465




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

    Басты бет