C++ Binäre Operatorüberladung
C++ Operatorüberladung und Funktionsüberladung
Binäre Operatoren erfordern zwei Operanden. Nachfolgend finden Sie Beispiele für binäre Operatoren. Der Additionsoperator ( + ), Subtraktionsoperator ( - ), Multiplikationsoperator ( * ) und Divisionsoperator ( / ), die wir üblicherweise verwenden, sind allesamt binäre Operatoren. Wie der Additionsoperator ( + ).
Das folgende Beispiel zeigt, wie man den Additionsoperator ( + ) überlädt. Ebenso können Sie auch versuchen, den Subtraktionsoperator ( - ) und den Divisionsoperator ( / ) zu überladen.
Beispiel
#include <iostream>
using namespace std;
class Box
{
double length; // Länge
double breadth; // Breite
double height; // Höhe
public:
double getVolume(void)
{
return length * breadth * height;
}
void setLength( double len )
{
length = len;
}
void setBreadth( double bre )
{
breadth = bre;
}
void setHeight( double hei )
{
height = hei;
}
// Überladen Sie den +-Operator, um zwei Box-Objekte zu addieren
Box operator+(const Box& b)
{
Box box;
box.length = this->length + b.length;
box.breadth = this->breadth + b.breadth;
box.height = this->height + b.height;
return box;
}
};
// Die Hauptfunktion des Programms
int main( )
{
Box Box1; // Deklariere Box1 vom Typ Box
Box Box2; // Deklariere Box2 vom Typ Box
Box Box3; // Deklariere Box3 vom Typ Box
double volume = 0.0; // Speichere das Volumen in dieser Variable
// Details zu Box1
Box1.setLength(6.0);
Box1.setBreadth(7.0);
Box1.setHeight(5.0);
// Details zu Box2
Box2.setLength(12.0);
Box2.setBreadth(13.0);
Box2.setHeight(10.0);
// Volumen von Box1
volume = Box1.getVolume();
cout << "Volumen von Box1 : " << volume <<endl;
// Volumen von Box2
volume = Box2.getVolume();
cout << "Volumen von Box2 : " << volume <<endl;
// Addiere die beiden Objekte, um Box3 zu erhalten
Box3 = Box1 + Box2;
// Volumen von Box3
volume = Box3.getVolume();
cout << "Volumen von Box3 : " << volume <<endl;
return 0;
}
Wenn der obige Code kompiliert und ausgeführt wird, liefert er die folgenden Ergebnisse:
Volume of Box1 : 210 Volume of Box2 : 1560 Volume of Box3 : 5400Weitere Erweiterungen