Загвар нь 2 төрөлтэй.
- Функц ( алгоритмын боловсруулалт)
- Класс (обьектын боловсруулалт)
- Загвар функц дээр параметрийн төрөл тодорхойлох шаардлагагүй.
- Загвар функц нь аргументийн утгыг тодорхойлдог.
Программын биеийг багасгах,кодчилох хэлбэрийг сайжруулахын тулд
загвар функц ашигладаг . Бичигдэх хэлбэр:
Template<class T>
Max(T a, T b){
If(a>b) then
Return a;
Else
Return b;}
Загвар класс
- Загвар класс нь аргументийн утгыг тодорхойлдог.
- Зарлалт нь template түлхүүр үгээр эхлэн параметрийн жагсаалт,классын нэр болон классын их бие болох зарлалтуудаас бүрдэнэ.
- Загвар класс дахь параметр нь загвар функцийн параметрийн адил тодорхойлогдоно.
- Загвар классын тодорхой тохиолдлын обьектыг үүсгэхдээ хэрэглэгч нь классын нэр параметрийн жагсаалтын утга болох өгөгдлүүдийг <> хаалтанд тодорхойлж өгнө.
Бичигдэх хэлбэр:
Template<class T,int element>
Stack<double,100>moon;
(100 бүхэл тоон элементтэй stack классын moon гэдэг обьект гэсэн үг)
Зарлагдах байдал:
Найз функцүүд болон классууд нь загвар класс дотор зарлагдаж болно.
If найз функц класс нь загвар
байдлаар тодорхойлогддог бол тэдгээрийн бүхий л тохиолдлууд нь зарлагдсан
загвар классынхаа найз нь байна.
Жишээ:1
#include<iostream>
#include<string.h>
using
namespace std;
template<class
t , class u>
t getmin(t a, u b){
return(a<b)
a:b;}
main(){
int
i=10;
int j=6;
long
l=4500;
i=getmin(j,l);
cout<<i<<endl;}
Жишээ:2
using
namespace
std;
template<class
T >
class
Pair{
T
value1, value2;
public:
Pair(T
first, T second){
value1=first;
value2=second;}
getmax(void);};
template<class
T> Pair<T>::getmax(void){
T retval;
retval=value1>value2?
value1:value2;
return
retval;}
main(){
Pair<int> myob(100,75);
cout<<myob.getmax()<<endl;
Pair<float>myob2(10.5,7.5);
cout<<myob2.getmax()<<endl;
Pair<long>myob3(1000,7500);
cout<<myob3.getmax()<<endl;}
Бие дааж бодох бодлого:
1. Хоёр тооны нийлбэрийг олох загвар функц ашиглан 4-н тооны нийлбэрийг олох программ зохио.
2.5-н сурагчийн мэдээллийг гараас оруулж суралцаж буй ангиар нь
өсөхөөр эрэмбэл.
3.ЭММТ ангийн оюутнуудын хэрэглэж буй компьтерийн үзүүлэлтийг ихээс
багаруу эрэмбэлэн хэвлэ.(Hard,cpu.ram)
No comments:
Post a Comment