Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> C Taal

C++ function overloading: een praktische gids

C++ Function Overloading

Ontdek hoe C++ je laat meerdere functies met dezelfde naam maar verschillende handtekeningen definiëren, geïllustreerd met praktische voorbeelden.

In C++ mogen twee functies dezelfde naam delen zolang hun parameterlijsten verschillen in type, aantal of volgorde. Deze varianten heten overloaded functions.

Bijvoorbeeld:

// Dezelfde naam, andere argumenten int test() { } int test(int a) { } float test(double a) { } int test(int a, double b) { }

Alle vier declaraties hierboven vormen een geldige overload set. Let op dat return types irrelevant zijn voor overload resolution; alleen de parameterlijst telt. Bijvoorbeeld:

// Compilatie fout: identieke handtekeningen int test(int a) { } double test(int b){ }

Hier hebben beide functies dezelfde naam, type en aantal argumenten, dus de compiler wijst de duplicaat af.


Voorbeeld 1: Overloading met Verschillende Parameter Types

// Absolute waarde berekenen voor int en float #include <iostream> using namespace std; // float versie float absolute(float var){ return (var < 0.0f) ? -var : var; } // int versie int absolute(int var){ return (var < 0) ? -var : var; } int main(){ cout << "Absolute value of -5 = " << absolute(-5) << endl; cout << "Absolute value of 5.5 = " << absolute(5.5f) << endl; return 0; }

Output

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

Dit programma overloaded absolute(); de compiler selecteert de juiste versie gebaseerd op het argument type.


Voorbeeld 2: Overloading met Verschillende Aantallen Parameters

#include <iostream> using namespace std; // Twee-parameter versie void display(int var1, double var2){ cout << "Integer: " << var1; cout << " & Double: " << var2 << endl; } // Enkele double parameter void display(double var){ cout << "Double: " << var << endl; } // Enkele int parameter void display(int var){ cout << "Integer: " << var << endl; } int main(){ int a = 5; double b = 5.5; display(a); display(b); display(a, b); return 0; }

Output

Integer: 5 Double: 5.5 Integer: 5 & Double: 5.5

De call naar display() resolveert naar de juiste overload gebaseerd op het aantal en type argumenten.


Let op: Standaard library functies zoals sqrt() zijn zwaar overgeladen, accepten int, float, double en meer, wat flexibiliteit aan developers biedt.

C Taal

  1. Method overloading in C#: concepten, voorbeelden en best practices
  2. Constructor overloading in C#: flexibele klassen ontwerpen
  3. C++ operators: complete gids met praktische voorbeelden
  4. C++ comments: best practices voor leesbare, onderhoudbare code
  5. Arrays doorgeven aan functies in C++: een praktische gids
  6. C++ Friend Functies en Friend Classes: Toegangscontrole Beheersen
  7. Hoe je 1D- en 2D-arrays doorgeeft aan functies in C – Een praktische gids
  8. C++ Operator Overloading – Praktische Handleiding met Code‑Voorbeelden
  9. C++ Functies Uitgelegd met Praktische Codevoorbeelden
  10. C-functies: Structuur, declaratie, aanroep en argumenten
  11. C++ Overloading Beheersen: Functies & Operators Uitgelegd