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



Pdf көрінісі
бет214/466
Дата20.07.2022
өлшемі3,66 Mb.
#37798
түріПрограмма
1   ...   210   211   212   213   214   215   216   217   ...   466
List 
шаблонының 
print
жалпылама əдісінің тақырыбы мынадай түрде болса:
template void List :: print();
онда символдардың тізімін шығаруға арналған əдіс келесідей болады:
void List ::print(){
... // print əдісінің арнайы нұсқасының тұлғасы
}
Егер программада 
char 
типті 
List
шаблонының данасын (экземплярын) 
құратын болсақ, əдістің сəйкес нұсқасы автоматты түрде шақырылады.
Бүтін класты специализациялау кезінде кластың жалпылама нұсқасын 
сипаттағаннан кейін специализацияланған кластың толық сипаттамасы ор-
наластырылады, бұл кезде оның барлық əдістерін қайта анықтау қажет. 100 
бүтін сан түріндегі шаманы сақтау үшін алдынғы бөлімде сипатталған 
Block 
шаблоныны специализациялау қажет болсын делік
1
:
class Block
public:
Block(){p = new int [100];} 
1
Мұның терең мағынасын іздеудің қажеті жоқ – мысал синтаксисті көрсету үшін берілген.


239
~Block(){delete [] p;} 
operator int *(); 
protected: 
int * p;
};
Block::operator int *(){ 
return p;
}
Block
шаблонының даналарын (экземплярларын)
int
жəне 100 
параметрлері арқылы анықтау кезінде специализацияланған нұсқа іске 
қосылады.
Шаблондардың артықшылықтары мен кемшіліктері
Шаблондар əртүрлі мəліметтер типтерімен жұмыс істеудің қуатты əрі 
тиімді құралы болып табылады, оны басқаша параметрлі полиморфизм деп 
те атауға болады. Сонымен қатар, шаблондар препроцессор макростары-
на қарағанда, типтерді қауіпсіз қолдануды қамтамасыз етеді. Шаблондарды 
қолданатын программада əрбір туынды тип үшін толық код болатынын еске-
ру керек, бұл орындалатын файлдың көлемін арттыруы мүмкін. Сонымен 
қатар, кейбір мəліметтер типтерімен шаблондар басқа типтерге қарағанда 
айтарлықтай тиімді жұмыс жасамауы мүмкін. Мұндайда шаблонның специ-
ализациясын қолданған жөн. 
C++ стандартты кітапханасы мəліметтерді сақтау мен өңдеуді 
ұйымдастырудың əртүрлі тəсілдеріне арналған шаблондардың үлкен 
жиынтығы болып келеді («Контейнерлік кластар» бөлімін, 318 б. қараңыз). 
Класс шаблондары практикумның [12] үшінші семинарында түпкілікті 
қарастырылған. 


240


Достарыңызбен бөлісу:
1   ...   210   211   212   213   214   215   216   217   ...   466




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

    Басты бет