C++ Functie Overbelasting


Functie Overbelasting

Bij functieoverbelasting kunnen meerdere functies dezelfde naam hebben met verschillende parameters:

Voorbeeld

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

Beschouw het volgende voorbeeld, dat twee functies heeft die getallen van verschillende typen optellen:

Voorbeeld

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

In plaats van twee functies te definiëren die hetzelfde zouden moeten doen, is het beter om er één te overbelasten.

In het onderstaande voorbeeld overbelasten we de plusFuncfunctie om voor zowel int en te werken double:

Voorbeeld

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

Let op: Meerdere functies kunnen dezelfde naam hebben zolang het aantal en/of type parameters maar verschillend zijn.