車輛選擇(繼承)

2022-03-22 09:52:34 字數 2008 閱讀 6034

有乙個汽車類vehicle,它具有乙個需傳遞引數的建構函式,汽車類vehicle中的資料成員為: 車輪個數wheels和車重weight放在保護段中,汽車類vehicle中的公有成員函式為:get_wheels()(返回車輪個數的值)、get_weight()(返回車重的值)、wheel_load()(返回每個輪胎的載重量的值:weight/wheels)、print()(輸出車輪的個數和車重的公斤數);

小車類car是vehicle類的派生類,它具有乙個需傳遞引數的建構函式,小車類car中的私有資料成員為:車載人數passenger_load,小車類car中的公有成員函式為:get_passengers()(返回車載人數的值)、print()(輸出小車車輪的個數和車重的公斤數以及車載人數的個數);

卡車類truck是vehicle類的派生類,它具有乙個需傳遞引數的建構函式,卡車類truck中的私有資料成員為:載人數passenger_load和載重量payload,卡車類truck中的公有成員函式為:get_passengers()(返回車載人數的值)、efficiency()(返回卡車的載重效率的值:payload/(payload+weight)、print()(輸出卡車車輪的個數和車重的公斤數以及車載人數的個數和卡車的載重效率的值))。

生成上述類並編寫主函式,根據輸入的車輛基本資訊,建立車輛物件,並能計算輸出該車輛的基本資訊。 輸入格式:測試輸入包含乙個測試用例,每一行給出乙個車輛的基本資訊,每行的第乙個字元處為當前車輛的型別,第二個數字為當前車輛的編號,若車輛為vehicle,後面跟隨兩個數字分別為wheels和weight,若車輛為car,後面跟隨三個數字分別為wheels,weight和車載人數,若車輛為truck,後面跟隨四個數字分別是wheels,weight、車載人數和載重量。(以上數字均為整型)。-1表示輸入結束,相應結果不要輸出。請注意輸出格式,按照輸入順序進行編號 說明:本題中輪胎載重量、載重效率若需輸出保留小數點後兩位。

輸入樣例:

vehicle 101 4 1900

car 201 4 2000 5

truck 301 6 3000 2 9000

car 202 4 1800 4

-1輸出樣例:

the 1st object is vehicle no. 101: weight 1900 kg and wheels 4

the 2nd object is car no. 201: passenger_load 5 weight 2000 kg and wheels 4

the 3rd object is truck no. 301: passenger_load 2 weight 3000 kg wheels 6 and efficiency 0.75

the 4th object is car no. 202: passenger_load 4 weight 1800 kg and wheels 4

#include#include

using

namespace

std;

//vehicle

class

vehicle;

float getwheels()

float getwheight()

float wheelload()

void print()

};//

carclass car : public

vehicle;

int getpassenger()

void print()

};//

truck

class truck : public

car;

float efficiency()

void

print();

};void

truck::print()

intmain()

else

if(type=="

car"

)

else

}return0;

}

歡迎指教,一起學習!

謝謝!

車輛類多重繼承中使用虛基類

專案3 在下面一段類的定義中,自行車類的虛基類為車輛類,機動車類的虛基類也為車輛類,電單車類的基類為自行車類和機動車類,類之間均為公有繼承。1 根據上面各類間關係的描述,補全下面程式段中空缺的 2 實現程式中宣告的成員函式,注意相應操作中的動作發生的條件不能滿足時應給出提示。資源中乙個可執行檔案,可...

C 繼承的選擇

1 c 的繼承有public繼承,protected繼承和private繼承 公共繼承 class son1 public base1 void myclass 在子類中可以訪問到public和protected 變數和方法,但是在外部只能訪問到public區域,如果想要修改protected變數只...

菱形繼承和組合與繼承的選擇。

class person class student public person class teacher public person class assistant public person,public student void test1 由上述的 中可以看出,在給a.name初始化的時候...