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;
}