Skip to content

Funksiyani qayta yuklash (Function Overloading)

Funksiyani qayta yuklash

Funksiyani qayta yuklash — bir nechta funksiyaga bir xil nom berish imkonini beradi, ular parametrlarining turi yoki soni bilan farqlanadi:

MISOL
cpp
int myFunction(int x)
float myFunction(float x)
double myFunction(double x, double y)

Bu o'xshash vazifalar uchun bir xil funksiya nomidan foydalanish imkonini beradi.


Qayta yuklashsiz

Turli turdagi sonlarni qo'shuvchi ikki funksiya:

MISOL

cpp
int plusFuncInt(int x, int y) {
  return x + y;
}

double plusFuncDouble(double x, double y) {
  return x + y;
}

int main() {
  int myNum1 = plusFuncInt(8, 5);
  double myNum2 = plusFuncDouble(4.3, 6.26);

  cout << "Int: " << myNum1 << "\n";
  cout << "Double: " << myNum2;
  return 0;
}

Muammo: Bir xil mantiq uchun ikki xil funksiya nomi yaratishga to'g'ri keldi.


Qayta yuklash bilan

plusFunc funksiyasini int va double uchun qayta yuklaymiz:

MISOL

cpp
int plusFunc(int x, int y) {
  return x + y;
}

double plusFunc(double x, double y) {
  return x + y;
}

int main() {
  int myNum1 = plusFunc(8, 5);
  double myNum2 = plusFunc(4.3, 6.26);

  cout << "Int: " << myNum1 << "\n";
  cout << "Double: " << myNum2;
  return 0;
}

ESLATMA

Bir nechta funksiya parametrlar soni va/yoki turi farq qilsa, bir xil nomga ega bo'lishi mumkin.


Parametrlar soni bo'yicha qayta yuklash

MISOL

cpp
int plusFunc(int x, int y) {
  return x + y;
}

int plusFunc(int x, int y, int z) {
  return x + y + z;
}

int main() {
  int result1 = plusFunc(3, 7);
  int result2 = plusFunc(1, 2, 3);

  cout << "2 sonning yig'indisi: " << result1 << "\n";
  cout << "3 sonning yig'indisi: " << result2;
  return 0;
}