Dasturlash 1 swd 1316 funksiya va sinf shablonlari 15



Download 5 Mb.
bet2/2
Sana19.04.2022
Hajmi5 Mb.
#564215
1   2
Bog'liq
1) 15-mavzu(Sinf va funksiya shablonlari)

Funksiya shabloni

  • Funksiya shabloni template kalit so’zidan foydalangan holda amalga oshiriladi.
  • Quyida funksiya shablonini yaratish formasi keltirilgan:
  • template TOIFA> qaytarish-tipi funk-nomi (arg-lar)
  • {
  • // funksiya tanasi
  • }

Funksiya shabloniga misol

  • #include
  • using namespace std;
  • // Funksiya shabloni e’lon qilinishi...
  • template void swapargs(X &a, X &b)
  • {
  • X temp;
  • temp = a;
  • a = b;
  • b = temp;
  • }

Davomi..

  • int main() {
  • int i=10, j=20;
  • double x=10.1, y=23.3;
  • char a='x', b='z';
  • cout << "Original i, j: " << i << ' ' << j << '\n';
  • cout << "Original x, y: " << x << ' ' << y << '\n';
  • cout << "Original a, b: " << a << ' ' << b << '\n';
  • swapargs(i, j); // swap funksiyasi butun toifa uchun (int)
  • swapargs(x, y); // swap funksiyasi haqiqiy toifa uchun (float)
  • swapargs(a, b); // swap funksiyasi simvol toifa uchun (char)
  • cout << "Swapped i, j: " << i << ' ' << j << '\n';
  • cout << "Swapped x, y: " << x << ' ' << y << '\n';
  • cout << "Swapped a, b: " << a << ' ' << b << '\n';
  • }

Funksiya shoblanida har xil toifadan foydalanish

  • #include
  • using namespace std;
  • template
  • void myfunc(type1 x, type2 y){
  • cout << x << ' ' << y << '\n'; }
  • int main(){
  • myfunc(10, "I like C++");
  • myfunc(98.6, 19L);
  • return 0; }

Funksiya shablonini override (qayta yozish)

  • template void swapargs(X &a, X &b){
  • X temp;
  • temp = a; a = b; b = temp;
  • cout << "swapargs funksiya shabloni chaqirildi.\n";
  • }
  • // Bunda swapargs() funksiyasi faqatgina int tipi uchun ishlaydi.
  • void swapargs(int &a, int &b){
  • int temp;
  • temp = a; a = b; b = temp;
  • cout << " int tipi uchun maxsus swapargs funksiyasi.\n";
  • }

Davomi…

  • int main(){
  • int i=10, j=20;
  • double x=10.1, y=23.3;
  • char a='x', b='z';
  • cout << "Original i, j: " << i << ' ' << j << '\n';
  • cout << "Original x, y: " << x << ' ' << y << '\n';
  • cout << "Original a, b: " << a << ' ' << b << '\n';
  • swapargs(i, j); // calls explicitly overloaded swapargs()
  • swapargs(x, y); // calls generic swapargs()
  • swapargs(a, b); // calls generic swapargs()
  • cout << "Swapped i, j: " << i << ' ' << j << '\n';
  • cout << "Swapped x, y: " << x << ' ' << y << '\n';
  • cout << "Swapped a, b: " << a << ' ' << b << '\n'; }

Funksiya shablonini overload qilish

  • #include
  • using namespace std;
  • template void f(X a){
  • cout << "Inside f(X a)="<
  • template void f(X a, Y b){
  • cout << "Inside f(X a, Yb)="<
  • int main(){
  • f(10); // calls f(X)
  • f(10, 20); // calls f(X, Y) }

Sinf shabloni

  • Sinf shablonini e’lon qilishning umumiy formasi:
  • template TOIFA> class sinf_nomi{
  • ...
  • }
  • Sinf shablonidan foydalanish
  • sinf_nomi obyekt;

Sinf shabloni uchun oddiy misol

  • #include
  • using namespace std;
  • template
  • class mypair {
  • T a, b;
  • public:
  • mypair (T first, T second)
  • {a=first; b=second;}
  • T getmax ();
  • };
  • template
  • T mypair::getmax ()
  • {
  • T retval;
  • retval = a>b? a : b;
  • return retval;
  • }
  • int main () {
  • mypair myobject (100, 75);
  • cout << myobject.getmax();
  • return 0;
  • }

Sinf shablonida ikki xil toifadan foydalanish

  • #include
  • using namespace std;
  • template class myclass{
  • Type1 i;
  • Type2 j;
  • public:
  • myclass(Type1 a, Type2 b) { i = a; j = b; }
  • void show() { cout << i << ' ' << j << '\n'; } };

Davomi…

  • int main()
  • {
  • myclass ob1(10, 0.23);
  • myclass ob2('X', "Templates add power.");
  • ob1.show(); // show int, double
  • ob2.show(); // show char, char *
  • return 0;
  • }

Foydalanilgan adabiyotlar

  • Herbert Shield “C++ The complete references – fourth edition” 2003. Part -2, Chapter – 17.
  • TutorialsPoint – simply easy learning programming: http://www.tutorialspoint.com/cplusplus/cpp_templates.htm
  • http://www.cprogramming.com/tutorial/templates.html
  • http://www.cplusplus.com/doc/tutorial/templates/

Xulosa

  • Funksiya shablonlari - turli xil tipdagi o’zgaruvchilar yoki parametrik o’zgaruvchilar bilan ishlashda qo’llaniladi.
  • Sinf shablonlari esa – turli xil obyektlar ustida amallar bajarish uchun ishlatiladi.
  • Obyektlar – o’zgaruvchi va o’zgarmaslarning dinamik strukturasidan tashkil topadi.
  • MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
  • Mallayev Oybek
  • Usmonqulovich
  • E’TIBORINGIZ UCHUN RAHMAT!

Download 5 Mb.

Do'stlaringiz bilan baham:
1   2




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2025
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish