天天看點

(C++執行個體)汽車類vehicle、小車類car、卡車類truck操作1.問題描述2.代碼實作3.運作結果

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;
}
           

3.運作結果

(C++執行個體)汽車類vehicle、小車類car、卡車類truck操作1.問題描述2.代碼實作3.運作結果

繼續閱讀