交通工具抽象类

本文介绍了交通工具类vehicle及其派生类car、truck和boat的定义与实现,展示了每个类包含的信息,包括名字、时速和耗油量,并通过实例化和调用showinfo()方法输出各类交通工具的详细信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
*程序的版权和版本声明部分:
*Copyright(c)2014,烟台大学计算机学院学生
*All rights reserved.
*文件名称:
*作者:田成琳
*完成日期:2014 年 6 月 11 日
*版本号:v1.0
*对任务及求解方法的描述部分:
*问题描述:有一个交通工具类vehicle,将它为 基类派生的有派生小车类car,卡车类truck和轮船类boat,定义这些类,
           并使其能够显示其各类交通工具的详细信息。
           他们包含的信息,有如下几种:
           1.名字    -----与输入的名字相符合
           2.时速(km/h)    -----最高时速
           3.耗油量(L/100km)    -----在经济时速下测得耗油量
*程序输入:输入三个派生类对应名字。
*程序输出:输出对应类型的信息。
*问题分析:
*算法设计:
*/
#include<iostream>
using namespace std;
class Vehicle
{
public:
    virtual void showinfo()=0;
    Vehicle(string n,double s_p,double oi)
        :name(n),speed(s_p),oil(oi) {}
protected:
    string name;
    double speed;
    double oil;
};
class Car:public Vehicle
{
public:
    Car(string n)
        :Vehicle(n,250,14.8) {}
    virtual void showinfo();
};
class Truck:public Vehicle
{
public:
    Truck(string n)
        :Vehicle(n,140,18) {}
    virtual void showinfo();
};
class Boat:public Vehicle
{
public:
    Boat(string n)
        :Vehicle(n,50,8.33) {}
    virtual void showinfo();
};
void Car::showinfo()
{
    cout<<"Mercedes Benz"<<endl;
    cout<<speed<<"km/h"<<endl;
    cout<<oil<<"L/100km"<<endl;
}
void Truck::showinfo()
{
    cout<<"Transport truck"<<endl;
    cout<<speed<<"km/h"<<endl;
    cout<<oil<<"L/100km"<<endl;
}
void Boat::showinfo()
{
    cout<<"Boat"<<endl;
    cout<<speed<<"km/h"<<endl;
    cout<<oil<<"L/100km";
}
int main()
{
    Vehicle *vp;
    string name0,name1,name2;
    cin>>name0;
    Car car(name0);
    cin>>name1;
    Truck truck(name1);
    cin>>name2;
    Boat boat(name2);
    vp=&car;//由此得出基类为抽象类
    vp->showinfo ();
    vp=&truck;
    vp->showinfo ();
    vp=&boat;
    vp->showinfo ();
    return 0;
}


运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值