Überladen des Additionsoperators in C++
Das Überladen von Operatoren ist eine Technik, bei der ein Programmierer die Bedeutung eines Operators neu definieren kann. Es ist ein Mechanismus, der es Programmierern ermöglicht, die Syntax ihrer Programmiersprache zu erweitern, indem sie Symbolen und Schlüsselwörtern neue Bedeutungen hinzufügen.
Operatoren können als unär, binär oder ternär klassifiziert werden. Unäre Operatoren nehmen einen Operanden, binäre Operatoren nehmen zwei Operanden und ternäre Operatoren nehmen drei Operanden.
Sie können Operatoren mit einer friend
-Funktion, einer Member-Funktion oder einer normalen Funktion überladen. Dieser Artikel konzentriert sich nur auf das Überladen des Additionsoperators mit der Funktion friend
in C++.
Das Schlüsselwort friend
wird in der Sprache C++ verwendet, um anzugeben, welche Klassen auf private Datenmitglieder einer Klasse zugreifen können. Es ist wichtig zu beachten, dass eine friend
-Funktion kein Klassenmitglied ist, sondern die Erlaubnis erhält, auf einige oder alle privaten Daten und Funktionen dieser Klasse zuzugreifen.
Friend-Klassen werden oft verwendet, um Hilfsfunktionen für andere Klassen bereitzustellen. Die friend
-Funktionen werden manchmal als Nicht-Member-Funktionen bezeichnet, da sie keine Mitglieder der Klasse sind.
Wenn Sie in C++ einen Operator mit der Funktion friend
überladen möchten, müssen Sie ihn als friend
deklarieren. Die Deklaration friend
teilt dem Compiler mit, dass diese Funktion mit anderen Funktionen und Objekten derselben Klasse verwendet wird.
Überladen Sie den Additionsoperator mit der friend
-Funktion in C++
In C++ ist der überladene Additionsoperator ein binärer Operator, der zwei Operanden desselben Typs nimmt und eine Addition an ihnen ausführt.
Die folgenden Schritte werden verwendet, um den Additionsoperator in C++ mit der Funktion friend
zu überladen:
-
Definieren Sie eine Template-Klasse, die
operator+()
in der abgeleiteten Klasse aufrufen kann. -
Definieren Sie eine
friend
-Funktion, die den Additionsoperator in der abgeleiteten Klasse überlädt. -
Definieren Sie die überladenen Operatoren zum Hinzufügen in der Vorlagenklasse.
-
Definieren Sie einen überladenen Operator für die Additionsoperation in der abgeleiteten Klasse, die von der in Schritt 2 definierten Funktion
friend
aufgerufen wird.
Beispielcode:
#include <iostream>
class Demo {
private:
int e_demo{};
public:
Demo(int demo) : e_demo{demo} {}
friend Demo operator+(const Demo& x1, const Demo& x2);
int getDemo() const { return e_demo; }
};
Demo operator+(const Demo& x1, const Demo& x2) {
return Demo{x1.e_demo + x2.e_demo};
}
int main() {
Demo demo1{5};
Demo demo2{5};
Demo demoSum{demo1 + demo2};
std::cout << "Total Count is " << demoSum.getDemo();
return 0;
}
Ausgabe:
Total Count is 10
Klicken Sie hier, um die Live-Demonstration des oben genannten Codes zu überprüfen.
Muhammad Adil is a seasoned programmer and writer who has experience in various fields. He has been programming for over 5 years and have always loved the thrill of solving complex problems. He has skilled in PHP, Python, C++, Java, JavaScript, Ruby on Rails, AngularJS, ReactJS, HTML5 and CSS3. He enjoys putting his experience and knowledge into words.
Facebook