Dasturlash 1 swd 1316 funksiya va sinf shablonlari 15



Yüklə 12,15 Kb.
səhifə2/2
tarix23.12.2023
ölçüsü12,15 Kb.
#155677
1   2
15-mavzu(Sinf va funksiya shablonlari) (1)

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!

Yüklə 12,15 Kb.

Dostları ilə paylaş:
1   2




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə