22 / 90

C++ Function Overloading

C++ funksiyalarni qayta yuklash

C++ da ikkita functions bir xil nomga ega bo'lishi mumkin, agar uzatilgan argumentlar soni va/yoki turi boshqacha bo'lsa.

Bir xil nomga ega, ammo turli argumentlarga ega bo'lgan bu funksiyalar haddan tashqari yuklangan funksiyalar deb nomlanadi. Masalan:

example.cpp
// bir xil nom turli dalillar
int test() { }
int test(int a) { }
float test(double a) { }
int test(int a, double b) { }

Bu erda barcha 4 funksiya ortiqcha yuklangan funksiyalardir.

E'tibor bering, ushbu 4 funksiyaning barchasini qaytarish turlari bir xil emas. Haddan tashqari yuklangan funksiyalar turli xil qaytarish turlariga ega bo'lishi mumkin yoki bo'lmasligi mumkin, ammo ular turli argumentlarga ega bo'lishi kerak. Masalan,

example.cpp
// Xato kodi
int test(int a) { }
double test(int b){ }

Bu yerda ikkala funksiya ham bir xil nomga ega, bir xil turdagi va bir xil argumentlar soniga ega. Shunday qilib, kompilyator xatoga yo'l qo'yadi.

1-misol: Har xil turdagi parametrlar yordamida ortiqcha yuklash

example.cpp
// Mutlaq qiymatni hisoblash uchun dastur
// Ham int, ham float uchun ishlaydi

#include <iostream>
using namespace std;

// float turi parametri bilan funksiya
float absolute(float var){
    if (var < 0.0)
        var = -var;
    return var;
}

// int tipidagi parametr bilan funksiya
int absolute(int var) {
     if (var < 0)
         var = -var;
    return var;
}

int main() {
    
    // int tipidagi parametr bilan chaqiruv funksiyasi
    cout << "Absolute value of -5 = " << absolute(-5) << endl;

    // float turi parametri bilan chaqiruv funksiyasi
    cout << "Absolute value of 5.5 = " << absolute(5.5f) << endl;
    return 0;
}

Chiqish

kod
Absolute value of -5 = 5
Absolute value of 5.5 = 5.5

Mutlaq() funksiyasi uchun ortiqcha yuklanishning ishlashi

Working of C++ Function Overloading for absolute()

Ushbu dasturda biz absolute() funksiyasini ortiqcha yuklaymiz. Funksiyani chaqirish paytida o'tkazilgan parametr turiga qarab, mos keladigan funksiya chaqiriladi.

2-misol: Turli sonli parametrlar yordamida ortiqcha yuklash

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

// 2 parametrli funksiya
void display(int var1, double var2) {
    cout << "Integer number: " << var1;
    cout << " and double number: " << var2 << endl;
}

// ikki turdagi bitta parametrli funksiya
void display(double var) {
    cout << "Double number: " << var << endl;
}

// int tipidagi yagona parametrli funksiya
void display(int var) {
    cout << "Integer number: " << var << endl;
}

int main() {

    int a = 5;
    double b = 5.5;

    // int tipidagi parametr bilan chaqiruv funksiyasi
    display(a);

    // 
    display(b);

    // 2 parametrli chaqiruv funksiyasi
    display(a, b);

    return 0;
}

Chiqish

kod
Integer number: 5
Float number: 5.5
Integer number: 5 and double number: 5.5

Bu erda display() funksiyasi turli argumentlar bilan uch marta chaqiriladi. O'tkazilgan argumentlar soni va turiga qarab, tegishli display() funksiyasi chaqiriladi.

Displey() funksiyasi uchun ortiqcha yuklanishning ishlashi

Working of C++ Function Overloading for display()

Bu funksiyalarning barchasini qaytarish turi bir xil, lekin funksiyani haddan tashqari yuklash uchun bunday bo'lishi shart emas.

[!NOTE] C++ da ko'pgina standart kutubxona funksiyalari haddan tashqari yuklangan. Masalan, sqrt() funksiyasi parametr sifatida double , float , int, va boshqalarni olishi mumkin. Bu mumkin, chunki sqrt() funksiyasi C++ da haddan tashqari yuklangan.

Shuningdek o'qing: