Angenommen, wir müssen eine Boxklasse mit wenigen Bedingungen definieren. Wie folgt:
Die drei Attribute l, b und h repräsentieren jeweils Länge, Breite und Höhe (dies sind private Variablen).
Definieren Sie einen nichtparametrischen Konstruktor, um l, b, h auf 0 zu setzen, und definieren Sie ihn ein parametrisierter Konstruktor zum anfänglichen Festlegen der Werte.
Definieren Sie die Getter-Methode jedes Attributs.
Definieren Sie eine Funktion berechneVolume(), um das Volumen der Box zu ermitteln.
Der Operator „Kleiner überladen als“ (
Erstellen Sie eine Variable, die die Anzahl der erstellten Boxen zählt.
Wenn wir also drei Kästchen (0, 0, 0) (5, 8, 3), (6, 3, 8) eingeben und die Daten für jedes Kästchen anzeigen und prüfen, ob das dritte Kästchen kleiner ist, ist es klein Eine davon ist größer als die zweite, ermitteln das Volumen der kleineren Box und geben durch Zählen der Variablen aus, wie viele Boxen sie haben.
Dann lautet die Ausgabe
Box 1: (length = 0, breadth = 0, width = 0) Box 2: (length = 5, breadth = 8, width = 3) Box 3: (length = 6, breadth = 3, width = 8) Box 3 is smaller, its volume: 120 There are total 3 box(es)
Um dieses Problem zu lösen, folgen wir den folgenden Schritten:
Um das Volumen zu berechnen, müssen wir l*b*h zurückgeben.
li>Um die Kleiner als (<) zu überladen Operator müssen wir prüfen, ob <) 运算符,我们必须检查
das L des aktuellen Objekts sich von dem L eines anderen Objekts unterscheidet, dann gibt
true zurück, wenn das L des aktuellen Objekts kleiner ist als das L des anderen Objekts
sonst , wenn sich das b des aktuellen Objekts vom gegebenen b eines anderen Objekts unterscheidet, dann gibt
true zurück, wenn das b des aktuellen Objekts kleiner ist als das b des anderen Objekts
Andernfalls, wenn das aktuelle Objekt Wenn h ist anders als h bei gegebenem anderen Objekt, dann
Gibt „true“ zurück, wenn h des aktuellen Objekts kleiner als h eines anderen Objekts ist
Schauen wir uns zum besseren Verständnis die folgende Implementierung an –
#include <iostream> using namespace std; class Box { int l, b, h; public: static int count; Box() : l(0), b(0), h(0) { count++; } Box(int length, int breadth, int height) : l(length), b(breadth), h(height) { count++; } int getLength() const {return l;} int getBreadth() const {return b;} int getHeight() const {return h;} long long CalculateVolume() const { return 1LL * l * b * h; } bool operator<(const Box& another) const { if (l != another.l) { return l < another.l; } if (b != another.b) { return b < another.b; } return h < another.h; } }; int Box::count = 0; int main(){ Box b1; Box b2(5,8,3); Box b3(6,3,8); printf("Box 1: (length = %d, breadth = %d, width = %d)\n",b1.getLength(), b1.getBreadth(), b1.getHeight()); printf("Box 2: (length = %d, breadth = %d, width = %d)\n",b2.getLength(), b2.getBreadth(), b2.getHeight()); printf("Box 3: (length = %d, breadth = %d, width = %d)\n",b3.getLength(), b3.getBreadth(), b3.getHeight()); if(b3 < b2){ cout << "Box 3 is smaller, its volume: " << b3.CalculateVolume() << endl; }else{ cout << "Box 3 is smaller, its volume: " << b2.CalculateVolume() << endl; } cout << "There are total " << Box::count << " box(es)"; }
b1; b2(5,8,3); b3(6,3,8);
Box 1: (length = 0, breadth = 0, width = 0) Box 2: (length = 5, breadth = 8, width = 3) Box 3: (length = 6, breadth = 3, width = 8) Box 3 is smaller, its volume: 120 There are total 3 box(es)
Das obige ist der detaillierte Inhalt vonC++-Programm zum Erstellen einer Box, Berechnen des Volumens und Überprüfen mit dem Kleiner-als-Operator. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!