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