#include using namespace std;

class Vehicle { public: virtual float travelTime(float distance) = 0; virtual void setSpeed(float speed) = 0; };

class Plane : public Vehicle { private: float speed; public: Plane(float speed = 1000) : speed(speed) {} float travelTime(float distance) { return distance / speed; } void setSpeed(float speed) { this->speed = speed; } float getSpeed() { return speed; } };

class Train : public Vehicle { private: float speed; public: Train(float speed = 100) : speed(speed) {} float travelTime(float distance) { return distance / speed; } void setSpeed(float speed) { this->speed = speed; } float getSpeed() { return speed; } };

//主函数 int main(){ Vehicle *v; Plane p; Train t; int i; float s, d; cout<'飞机的速度:'<p.getSpeed()<<endl; cout<'火车的速度:'<t.getSpeed()<<endl; cout<'请输入交通工具类型号(1飞机,2火车)、速度以及路程:'<endl; cin>>i>>s>>d; if(i==1||i==2){ if(i==1){ v=&p; v->setSpeed(s); cout<'飞机的旅程时间:'travelTime(d)<<endl; } else{ v=&t; v->setSpeed(s); cout<'火车的旅程时间:'travelTime(d)<<endl; } } return 0; }

C++ 抽象类 Vehicle 及其派生类 Plane 和 Train 的实现

原文地址: https://www.cveoy.top/t/topic/osIX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录