C++

Überladen von C++-Operatoren

Überladen von C++-Operatoren
Dieser Artikel bietet eine Anleitung zum Überladen von Operatoren in C++. Das Überladen von Operatoren ist eine nützliche und leistungsstarke Funktion der Programmiersprache C++. C++ ermöglicht das Überladen der meisten integrierten Operatoren. In diesem Tutorial werden wir mehrere Beispiele verwenden, um den Mechanismus der Operatorüberladung zu demonstrieren.

Was ist Operator?

Ein Operator ist ein Symbol, das dem Compiler anzeigt, eine bestimmte Operation auszuführen. In C++ gibt es beispielsweise verschiedene Arten von Operatoren, wie arithmetische Operatoren, logische Operatoren, relationale Operatoren, Zuweisungsoperatoren, bitweise Operatoren und mehr.

Was ist eine Operatorüberlastung??

Die Sprache C++ ermöglicht es Programmierern, Operatoren besondere Bedeutungen zu geben. Das bedeutet, dass Sie den Operator für benutzerdefinierte Datentypen in C . neu definieren können++. „+“ wird beispielsweise verwendet, um integrierte Datentypen wie int, float usw. hinzuzufügen. Um zwei Arten von benutzerdefinierten Daten hinzuzufügen, muss der Operator „+“ überladen werden.

Syntax für das Überladen von Operatoren

C++ bietet eine spezielle Funktion namens „Operator“ zum Überladen von Operatoren. Die Syntax für das Überladen von Operatoren lautet wie folgt:

KlassenprobeKlasse


Öffentlichkeit:
returnType-Operatorsymbol (Argumente)



;

Hier ist „operator“ ein Schlüsselwort und „symbol“ der Operator, den wir überladen möchten.

Beispiele

Nachdem Sie nun das Gesamtkonzept der Operatorüberlastung verstanden haben, lassen Sie uns ein paar funktionierende Beispielprogramme durchgehen, damit Sie diese Idee konkreter verstehen können. Wir werden die folgenden Beispiele behandeln:

  1. Beispiel 1: Unäre Operatorüberlastung (1)
  2. Beispiel 2: Überladen des unären Operators (2)
  3. Beispiel 3: Überladen von binären Operatoren
  4. Beispiel 4: Überladen von relationalen Operatoren

Beispiel 1: Unäre Operatorüberlastung (1)

In diesem Beispiel zeigen wir, wie ein unärer Operator in C . überladen werden kann++. Wir haben die Klasse „Square_Box“ und die öffentlichen Funktionen „operator ++ ()“ und „operator ++ (int)“ definiert, um sowohl die Präfix- als auch die Postfix-Inkrementierungsoperatoren zu überladen. In der Funktion „main()“ haben wir das Objekt „mySquare_Box1“ erstellt.“ Wir haben dann die Präfix- und Postfix-Inkrement-Operatoren auf das „mySquare_Box1“-Objekt angewendet, um die Überladung der unären Operatoren zu demonstrieren.

#einschließen
Verwenden von Namespace-Std;
Klasse Square_Box

Privatgelände:
Schwimmerlänge;
Schwimmerbreite;
Schwimmerhöhe;
Öffentlichkeit:
Quatratische Kiste()
Square_Box(float l, float w, float h)

Länge = l;
Breite = w;
Höhe = h;

// Operatorüberladung - "++" Präfixoperator
Leeroperator ++ ()

Länge++;
Breite++;
Höhe++;

// Operator-Überladung - "++" Postfix-Operator
void-Operator ++ (int)

Länge++;
Breite++;
Höhe++;

Leere Ausgabe ()

cout << "\tLength = " << length << endl;
cout << "\tWidth = " << width << endl;
cout << "\tHeight = " << height << endl;
cout << endl;

;
int main()

Square_Box mySquare_Box1(3.0, 5.0, 6.0);
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.Ausgabe();
mySquare_Box1++;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.Ausgabe();
++mySquare_Box1;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.Ausgabe();
0 zurückgeben;

Beispiel 2: Überladen des unären Operators (2)

Dies ist ein weiteres Beispiel, in dem wir zeigen werden, wie ein unärer Operator in C . überladen werden kann++. Wir haben die Klasse "Square_Box" und die öffentlichen Funktionen "operator - ()" und "operator - (int)" definiert, um sowohl die Präfix- als auch die Postfix-Dekrementierungsoperatoren zu überladen. In der Funktion „main()“ haben wir das Objekt „mySquare_Box1“ erstellt. Wir haben dann die Präfix- und Postfix-Dekrementierungsoperatoren auf das „mySquare_Box1“-Objekt angewendet.

#einschließen
Verwenden von Namespace-Std;
Klasse Square_Box

Privatgelände:
Schwimmerlänge;
Schwimmerbreite;
Schwimmerhöhe;
Öffentlichkeit:
Quatratische Kiste()
Square_Box(float l, float w, float h)

Länge = l;
Breite = w;
Höhe = h;

// Operatorüberladung - "--" Präfixoperator
void-Operator --()

Länge--;
Breite--;
Höhe--;

// Operatorüberladung - "--" Postfix-Operator
void-Operator -- (int)

Länge--;
Breite--;
Höhe--;

Leere Ausgabe ()

cout << "\tLength = " << length << endl;
cout << "\tWidth = " << width << endl;
cout << "\tHeight = " << height << endl;
cout << endl;

;
int main()

Square_Box mySquare_Box1(3.0, 5.0, 6.0);
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.Ausgabe();
mySquare_Box1--;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.Ausgabe();
--mySquare_Box1;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.Ausgabe();
0 zurückgeben;

Beispiel 3: Überladen von binären Operatoren

Nun sehen wir uns ein Beispiel für das Überladen binärer Operatoren an. Die Syntax für das Überladen binärer Operatoren unterscheidet sich etwas von der Überladung unärer Operatoren. In diesem Beispiel werden wir den Operator „+“ überladen, um zwei „Square_Box“-Objekte hinzuzufügen.

#einschließen
Verwenden von Namespace-Std;
Klasse Square_Box

Privatgelände:
Schwimmerlänge;
Schwimmerbreite;
Schwimmerhöhe;
Öffentlichkeit:
Quatratische Kiste()
Square_Box(float l, float w, float h)

Länge = l;
Breite = w;
Höhe = h;

// Operator-Überladung - "+"-Operator
Square_Box-Operator + (const Square_Box& obj)

Square_Box-Temp;
temp.Länge = Länge + Objekt.Länge;
temp.Breite = Breite + Objekt.Breite;
temp.Höhe = Höhe + Objekt.Höhe;
Rücklauftemperatur;

Leere Ausgabe ()

cout << "\tLength = " << length << endl;
cout << "\tWidth = " << width << endl;
cout << "\tHeight = " << height << endl;
cout << endl;

;
int main()

Square_Box mySquare_Box1(3.0, 5.0, 6.0), mySquare_Box2(2.0, 3.0, 5.0), Ergebnis;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.Ausgabe();
cout << "Dimensions of mySquare_Box2 = " << endl;
mySquare_Box2.Ausgabe();
Ergebnis = mySquare_Box1 + mySquare_Box2;
cout << "Dimensions of resultant square box = " << endl;
Ergebnis.Ausgabe();
0 zurückgeben;

Beispiel 4: Überladen von relationalen Operatoren

Nun sehen wir uns ein Beispiel für das Überladen von relationalen Operatoren an. Die Syntax für das Überladen relationaler Operatoren ist genau wie die des Überladens von binären Operatoren. In diesem Beispiel überladen wir die „<” and “>”-Operatoren, die auf die „Square_Box“-Objekte angewendet werden sollen.

#einschließen
Verwenden von Namespace-Std;
Klasse Square_Box

Privatgelände:
Schwimmerlänge;
Schwimmerbreite;
Schwimmerhöhe;
Öffentlichkeit:
Quatratische Kiste()
Square_Box(float l, float w, float h)

Länge = l;
Breite = w;
Höhe = h;

// Operatorüberladung - "<" operator
bool-Operator < (const Square_Box& obj)

wenn (Länge < obj.length)
true zurückgeben;
sonst
falsch zurückgeben;

// Operatorüberladung - Operator ">""
bool-Operator > (const Square_Box& obj)

if(Länge > obj.Länge)
true zurückgeben;
sonst
falsch zurückgeben;

Leere Ausgabe ()

cout << "\tLength = " << length << endl;
cout << "\tWidth = " << width << endl;
cout << "\tHeight = " << height << endl;
cout << endl;

;
int main()

Square_Box mySquare_Box1(2.0, 3.0, 5.0), mySquare_Box2(4.0, 6.0, 8.0);
boolesches Ergebnis;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.Ausgabe();
cout << "Dimensions of mySquare_Box2 = " << endl;
mySquare_Box2.Ausgabe();
Ergebnis = mySquare_Box1 < mySquare_Box2;
cout << "mySquare_Box1 < mySquare_Box2 = " << result < mySquare_Box2;
cout < mySquare_Box2 = " << result << endl;
0 zurückgeben;

Fazit

C++ ist eine universelle und flexible Programmiersprache, die in einer Vielzahl von Domänen weit verbreitet ist. Diese Programmiersprache unterstützt sowohl Kompilierzeit- als auch Laufzeitpolymorphismusmorph. In diesem Artikel wurde gezeigt, wie Sie in C . eine Operatorüberladung durchführen++. Dies ist eine sehr nützliche Funktion von C++, die für den Entwickler zusätzlichen Aufwand bei der Definition des Operators für das Überladen bedeutet, aber dem Benutzer der Klasse das Leben auf jeden Fall erleichtert.

Cursor springt oder bewegt sich zufällig während der Eingabe in Windows 10
Wenn Sie feststellen, dass Ihr Mauszeiger während der Eingabe auf einem Windows-Laptop oder -Computer automatisch und zufällig springt oder sich von s...
So kehren Sie die Scrollrichtung von Maus und Touchpads in Windows 10 um
Maus und Touchpads machen das Rechnen nicht nur einfach, sondern auch effizienter und weniger zeitaufwendig. Wir können uns ein Leben ohne diese Gerät...
So ändern Sie Mauszeiger- und Cursorgröße, Farbe und Schema unter Windows 10
Der Mauszeiger und der Cursor in Windows 10 sind sehr wichtige Aspekte des Betriebssystems. Dies kann auch für andere Betriebssysteme gesagt werden, a...