76 / 90

C++ Function Templates

C++ funksiya shablonlari

Shablonlar C++ tilining kuchli xususiyatlari bo'lib, umumiy dasturlarni yozish imkonini beradi.

Shablon yordamida har xil ma'lumotlar turlari bilan ishlash uchun bitta funksiya yaratishimiz mumkin.

Funksiya shablonini aniqlash

Funksiya shabloni template kalit so'zidan boshlanadi, so'ngra <> ichidagi shablon parametr(lar)idan so'ng funksiya ta'rifi keladi.

example.cpp
template <typename T>
T functionName(T parameter1, T parameter2, ...) {
    // kod
}

Yuqoridagi kodda T turli xil ma'lumotlar turlarini ( int , float va boshqalar) qabul qiluvchi shablon argumenti va typename kalit so'zdir.

Ma'lumotlar turining argumenti functionName() ga uzatilganda, kompilyator berilgan ma'lumotlar turi uchun functionName() ning yangi versiyasini yaratadi.

Funksiya shablonini chaqirish

Funksiya shablonini e'lon qilganimiz va aniqlaganimizdan so'ng, biz uni boshqa funksiyalar yoki shablonlarda (masalan, main() funksiyasi) quyidagi sintaksis bilan chaqirishimiz mumkin.

example.cpp
functionName<dataType>(parameter1, parameter2,...);

Misol uchun, ikkita raqam qo'shadigan shablonni ko'rib chiqaylik:

example.cpp
template <typename T>
T add(T num1, T num2) {
   return (num1 + num2);
}

Keyin int va double raqamlarini qo'shish uchun uni main() funksiyasida chaqirishimiz mumkin.

example.cpp
#include <iostream>

using namespace std;
int main() {

    int result1;
    double result2;
    // int parametrlari bilan chaqirish
    result1 = add<int>(2, 3);
    cout << result1 << endl;

    // qo'sh parametrlar bilan qo'ng'iroq qilish
    result2 = add<double>(2.2, 3.3);
    cout << result2 << endl;

    return 0;
}

Function Call based on data types

Working of C++ Function Template

Misol: Funksiya shablonlari yordamida ikkita raqam qo'shish

example.cpp
#include <iostream>
using namespace std;

template <typename T>
T add(T num1, T num2) {
    return (num1 + num2);
}

int main() {
    int result1;
    double result2;
    // int parametrlari bilan chaqirish
    result1 = add<int>(2, 3);
    cout << "2 + 3 = " << result1 << endl;

    // qo'sh parametrlar bilan qo'ng'iroq qilish
    result2 = add<double>(2.2, 3.3);
    cout << "2.2 + 3.3 = " << result2 << endl;

    return 0;
}

Chiqish

kod
2 + 3 = 5
2.2 + 3.3 = 5.5