1.問題描述
編寫一個程式,有一個汽車類vehicle,它具有一個需傳遞參數的構造函數,類中資料成員包括:車輪個數wheels和車重weight,并設定成保護成員;小車類car是它的私有派生類,其中包含載客人數passenger_load;卡車類truck是vehicle的私有派生類,其中包含載客人數passenger_load和載重量payload。每個類都有相關的資料輸出,最後在主函數中進行測試。
2.代碼實作
//代碼實作
#include <iostream>
using namespace std;
class vehicle{
public:
//無參構造
vehicle(){ }
//有參構造
vehicle(int n,float w){
wheels=n;
weight=w;
}
//輸出資訊
void Print(){
cout<<"條件:\n輪子≥ "<<wheels<<endl<<"重量≥ "<<weight<<" 噸。\n\n";
}
//析構函數
~vehicle(){ }
protected:
int wheels;//輪數
float weight;//車重
};
class car:private vehicle{
public:
//無參構造
car(){ }
//有參構造
car(int passenger_load,int wheels,float weight):vehicle(wheels,weight){
this->passenger_load=passenger_load;
}
void Print(){
cout<<"car載客人數 "<<passenger_load<<endl;
}
//析構函數
~car(){ }
private:
int passenger_load;
};
class truck:private vehicle{
public:
//無參構造
truck(){ }
//有參構造
truck(int passenger,float payloads,int wheels,float weight)
:vehicle(wheels,weight){
passenger_load=passenger;
payload=payloads;
}
void Print(){
cout<<"truck載客人數 "<<passenger_load<<" 載重 "<<payload<<endl<<endl;
}
//析構函數
~truck(){ }
private:
int passenger_load;//載客人數
float payload;//載重量
};
int main(){
vehicle v(4,80);//vehcile對象
car c(4,120,4);//car對象
truck t(4,6,2,14);//truck對象
v.Print();//基類輸出
c.Print();
cout<<endl;//換行
t.Print();
return 0;
}