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:
// 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,
// 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.
// 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
Absolute value of -5 = 5
Absolute value of 5.5 = 5.5
Mutlaq() funksiyasi uchun ortiqcha yuklanishning ishlashi

Ushbu dasturda biz absolute() funksiyasini ortiqcha yuklaymiz. Funksiyani chaqirish paytida o'tkazilgan parametr turiga qarab, mos keladigan funksiya chaqiriladi.
#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
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

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, chunkisqrt()funksiyasi C++ da haddan tashqari yuklangan.
Shuningdek o'qing: