C++-Methodenüberladung

C++C++Beginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden wir lernen, wie wir das Konzept der Methodenüberladung in der Programmiersprache C++ demonstrieren. Methodenüberladung ist ein Konzept, bei dem wir in einer Klasse mehrere Methoden oder Funktionen mit demselben Namen haben, aber mit unterschiedlichen Parametern. Die passende Methode wird basierend auf der Anzahl und den Typen der Parameter, die beim Methodenaufruf übergeben werden, aufgerufen.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("C++")) -.-> cpp/FunctionsGroup(["Functions"]) cpp(("C++")) -.-> cpp/OOPGroup(["OOP"]) cpp(("C++")) -.-> cpp/IOandFileHandlingGroup(["I/O and File Handling"]) cpp(("C++")) -.-> cpp/SyntaxandStyleGroup(["Syntax and Style"]) cpp/FunctionsGroup -.-> cpp/function_overloading("Function Overloading") cpp/OOPGroup -.-> cpp/class_methods("Class Methods") cpp/IOandFileHandlingGroup -.-> cpp/output("Output") cpp/IOandFileHandlingGroup -.-> cpp/user_input("User Input") cpp/IOandFileHandlingGroup -.-> cpp/files("Files") cpp/SyntaxandStyleGroup -.-> cpp/code_formatting("Code Formatting") subgraph Lab Skills cpp/function_overloading -.-> lab-96149{{"C++-Methodenüberladung"}} cpp/class_methods -.-> lab-96149{{"C++-Methodenüberladung"}} cpp/output -.-> lab-96149{{"C++-Methodenüberladung"}} cpp/user_input -.-> lab-96149{{"C++-Methodenüberladung"}} cpp/files -.-> lab-96149{{"C++-Methodenüberladung"}} cpp/code_formatting -.-> lab-96149{{"C++-Methodenüberladung"}} end

Erstellen einer C++-Datei

Zunächst erstellen wir eine neue C++-Datei mit dem Namen main.cpp im Verzeichnis ~/project mit dem folgenden Befehl:

touch ~/project/main.cpp

Schreiben des Codes

Wir werden eine Klasse namens shape erstellen und zwei Methoden namens area() definieren, aber mit unterschiedlicher Anzahl von Parametern. Die input()-Methode wird Eingaben vom Benutzer entgegennehmen, um die Werte der Membervariablen l, b und s zu setzen. Anschließend definieren wir die main()-Methode, um auf die Member der shape-Klasse von außerhalb der Klasse zuzugreifen.

#include <iostream>

using namespace std;

class shape {

    // Membervariablen deklarieren
    public:
        int l, b, s;

    // Memberfunktionen oder Methoden definieren
    public:
        void input() {
            cout << "Geben Sie die Länge jeder Seite des Quadrats ein: \n";
            cin >> s;
            cout << "\n";
            cout << "Geben Sie die Länge und die Breite des Rechtecks ein: \n";
            cin >> l >> b;
            cout << "\n";
        }

    // Methodenüberladung demonstrieren
    public:
        void area(int side) {
            cout << "Fläche des Quadrats = " << side * side << endl;
        }

        void area(int length, int breadth) {
            cout << "Fläche des Rechtecks = " << length * breadth << endl;
        }
};

int main() {
    cout << "\n\nWillkommen bei LabEx :-)\n\n\n";
    cout << " =====  Programm zur Demonstration der Methodenüberladung in einer Klasse in CPP  ===== \n\n";

    // Klasse-Objekt deklarieren, um auf die Klassenelemente von außerhalb der Klasse zuzugreifen
    shape sh;

    cout << "\nRufe die input()-Funktion auf, um die Werte vom Benutzer zu erhalten\n";
    sh.input();

    cout << "\nRufe die area(int)-Funktion auf, um die Fläche des Quadrats zu berechnen\n";
    sh.area(sh.s);

    cout << "\nRufe die area(int,int)-Funktion auf, um die Fläche des Rechtecks zu berechnen\n";
    sh.area(sh.l, sh.b);

    cout << "\nVerlasse die main()-Methode\n\n\n";

    return 0;
}

Kompilieren und Ausführen des Codes

Wir werden nun den Code mit dem folgenden Befehl kompilieren und ausführen:

g++ main.cpp -o main && ./main

Verstehen der Ausgabe

Die Ausgabe des Programms wird wie folgt aussehen:

Willkommen bei LabEx :-)


 =====  Programm zur Demonstration der Methodenüberladung in einer Klasse in CPP  =====

Rufe die input()-Funktion auf, um die Werte vom Benutzer zu erhalten
Geben Sie die Länge jeder Seite des Quadrats ein:
4

Geben Sie die Länge und die Breite des Rechtecks ein:
5
6


Rufe die area(int)-Funktion auf, um die Fläche des Quadrats zu berechnen
Fläche des Quadrats = 16

Rufe die area(int,int)-Funktion auf, um die Fläche des Rechtecks zu berechnen
Fläche des Rechtecks = 30

Verlasse die main()-Methode

Hier können wir sehen, dass die input()-Methode aufgerufen wird, um Benutzereingaben zu empfangen. Anschließend wird die area()-Methode mit einem Parameter aufgerufen, um die Fläche eines Quadrats zu berechnen, und die area()-Methode mit zwei Parametern wird aufgerufen, um die Fläche eines Rechtecks zu berechnen.

Zusammenfassung

In diesem Lab haben wir gelernt, wie das Konzept der Methodenüberladung in der C++-Programmiersprache verwendet wird. Wir haben ein Programm erstellt, das eine Klasse namens shape definiert, mit zwei Methoden namens area(), aber mit unterschiedlicher Anzahl von Parametern, die überladen wurden. Der Benutzer gibt die Länge und Breite eines Rechtecks und die Länge einer Seite eines Quadrats ein. Wir haben die überladenen Methoden verwendet, um die Flächen beider Figuren zu berechnen.