假設我們必須定義一個具有很少條件的盒子類別。如下-
三個屬性l、b 和h 分別表示長度、寬度和高度(這些是私有變數)
定義一個非參數化建構函式來將l、b、h 設為0,並定義一個參數化建構函式來初始設定值。
定義每個屬性的getter方法
定義一個函數calculateVolume()取得盒子的體積
重載小於運算子(
建立一個可以計算建立的方塊數量的變數。
因此,如果我們輸入三個框(0, 0, 0) (5, 8, 3), (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)
為了解決這個問題,我們將按照以下步驟操作-
要計算體積,我們必須返回l* b*h
li>要重載小於(<) 運算符,我們必須檢查<) 运算符,我们必须检查
目前物件的l 是否與給定另一個物件的l 不同,則
如果目前物件的l小於另一個物件的l,則傳回true
否則,噹噹前物件的b 與給定另一個物件的b 不同時,則
如果目前物件的b 較小,則傳回true比另一個物件的b
否則,噹噹前對象的h 與給定另一個對象的h 不同時,則
如果當前對象的h 小於另一個物件的h,則傳回true
讓我們看看以下實現,以便更好地理解-
#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)
以上是C++程式建立盒子並計算體積,並使用小於運算子進行檢查的詳細內容。更多資訊請關注PHP中文網其他相關文章!