Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

C++-Funktionenüberladung: Ein praktischer Leitfaden

C++-Funktionenüberladung

Entdecken Sie, wie C++ es Ihnen ermöglicht, mehrere Funktionen mit demselben Namen, aber unterschiedlichen Signaturen zu definieren, illustriert mit praktischen Beispielen.

In C++ dürfen zwei Funktionen denselben Namen haben, solange ihre Parameterlisten in Typ, Anzahl oder Reihenfolge unterschiedlich sind. Diese Varianten nennt man überladene Funktionen.

Zum Beispiel:

// Gleicher Name, unterschiedliche Argumente
int test() { }
int test(int a) { }
float test(double a) { }
int test(int a, double b) { }

Alle vier Deklarationen oben stellen einen gültigen Überladungssatz dar. Beachten Sie, dass Rückgabetypen für die Überladungsauflösung irrelevant sind; nur die Parameterliste zählt. Zum Beispiel:

// Kompilierfehler: identische Signaturen
int test(int a) { }
double test(int b) { }

Hier haben beide Funktionen denselben Namen, denselben Typ und dieselbe Anzahl an Argumenten, daher lehnt der Compiler das Duplikat ab.


Beispiel 1: Überladung mit unterschiedlichen Parametertypen

// Betrag für int und float berechnen
#include <iostream>
using namespace std;

// float-Version
float absolute(float var)
{
    return (var < 0.0f) ? -var : var;
}

// int-Version
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;
}

Ausgabe

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

Dieses Programm überlädt absolute(); der Compiler wählt die passende Version basierend auf dem Argumenttyp aus.


Beispiel 2: Überladung mit unterschiedlicher Parameteranzahl

#include <iostream>
using namespace std;

// Zwei-Parameter-Version
void display(int var1, double var2)
{
    cout << "Integer: " << var1;
    cout << " & Double: " << var2 << endl;
}

// Einzelner double-Parameter
void display(double var)
{
    cout << "Double: " << var << endl;
}

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

Ausgabe

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

Der Aufruf von display() löst sich basierend auf Anzahl und Typ der Argumente zur korrekten Überladung auf.


Hinweis: Standardbibliotheksfunktionen wie sqrt() sind stark überladen und akzeptieren int, float, double und mehr, was Entwicklern Flexibilität bietet.

C Sprache

  1. Methodenüberladung in C# meistern: Konzepte, Beispiele und Best Practices
  2. Konstruktorüberladung in C# meistern
  3. C++-Operatoren meistern: Ein vollständiger Leitfaden mit praktischen Beispielen
  4. C++-Kommentare: Best Practices für lesbaren, wartbaren Code
  5. Arrays an Funktionen in C++ übergeben: Ein praktischer Leitfaden
  6. C++ Friend-Funktionen und Friend-Klassen: Zugriffskontrolle meistern
  7. Arrays an Funktionen in C übergeben: 1D & 2D – Praxisleitfaden
  8. C++ Operator‑Overloading: Praktischer Leitfaden mit Code‑Beispielen
  9. C++-Funktionen erklärt: Mit praktischen Code-Beispielen
  10. C-Funktionen meistern: Struktur, Deklaration & Best Practices