C++|【20分】C. 交通工具(多重继承)

文章描述了一个C++编程问题,涉及类继承的概念。创建了一个基类CVehicle,派生出CBicycle,CMotocar和CMotocycle类,并定义了各自的属性和方法。在主函数中,通过输入参数实例化这些类的对象,并调用display函数展示对象信息。
摘要由CSDN通过智能技术生成


一、题目描述

1、建立如下的类继承结构:

1)一个车类CVehicle作为基类,具有max_speed、speed、weight等数据成员,display()等成员函数

2)从CVehicle类派生出自行车类CBicycle,添加属性:高度height

3)从CVehicle类派生出汽车类CMotocar,添加属性:座位数seat_num

4)从CBicycle和CMotocar派生出摩托车类CMotocycle

2、分别定义以上类的构造函数、输出函数display及其他函数(如需要)。

3、在主函数中定义各种类的对象,并测试之,通过对象调用display函数产生输出。


二、输入与输出

1.输入

第一行:最高速度 速度 重量 第二行:高度 第三行:座位数

100 60 20
28
2

2.输出

第一行:Vehicle: 第二行及以后各行:格式见Sample

Vehicle:
max_speed:100
speed:60
weight:20

Bicycle:
max_speed:100
speed:60
weight:20
height:28

Motocar:
max_speed:100
speed:60
weight:20
seat_num:2

Motocycle:
max_speed:100
speed:60
weight:20
height:28
seat_num:2


三、参考代码

#include <iostream>
#include <cmath>
#include <string>
#include <iomanip>
using namespace std;
class ve
{
	int max;
	int spe;
	int wei;
public:
	ve(int m,int s,int w):max(m),spe(s),wei(w){}
	void pri1()
	{
		cout << "max_speed:" << max << endl;
		cout << "speed:" << spe << endl;
		cout << "weight:" << wei << endl;
	}
};
class bic :public ve
{
	int hei;
public:
	bic(int m, int s, int w,int h):ve(m,s,w),hei(h){}
	void pri2()
	{
		pri1();
		cout << "height:" << hei << endl;
	}
};
class mo :public ve
{
	int set;
public:
	mo(int m, int s, int w, int h) :ve(m, s, w), set(h) {}
	void pri3()
	{
		cout << "seat_num:" << set<<endl;
	}
};
class moto :public bic, public mo
{
	
public:
	moto(int m, int s, int w, int h, int s1) :bic(m, s, w, h), mo(m, s, w, s1) {}
	void pri4()
	{
		pri2();
		pri3();
	}
};
int main()
{
	int max;
	int spe;
	int wei;
	int h;
	int s;
	cin >> max >> spe >> wei >> h >> s;

	cout << "Vehicle:" << endl;
	ve a1(max, spe, wei);
	a1.pri1();
	cout << endl;
	
	cout << "Bicycle:" << endl;
	bic a2(max, spe, wei, h);
	a2.pri2();
	cout << endl;

	cout << "Motocar:" << endl;
	mo a3(max, spe, wei, s);
	a1.pri1();
	a3.pri3();
	cout << endl;

	cout << "Motocycle:" << endl;
	moto a4 (max,spe, wei, h, s);
	a4.pri4();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Z1Jxxx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值