#include using namespace std;

// 定义抽象类 Vehicle class Vehicle { public: // 纯虚函数,用于计算旅程时间 virtual float travelTime(float distance) = 0; // 纯虚函数,用于设置速度 virtual void setSpeed(float speed) = 0; };

// 定义飞机类 Plane class Plane : public Vehicle { private: float speed; public: // 有参构造函数,初始化飞行速度 Plane(float speed = 1000) : speed(speed) {} // 重载 travelTime 函数 float travelTime(float distance) override { return distance / speed; } // 重载 setSpeed 函数 void setSpeed(float speed) override { this->speed = speed; } // 获取飞行速度 float getSpeed() { return speed; } };

// 定义火车类 Train class Train : public Vehicle { private: float speed; public: // 有参构造函数,初始化行驶速度 Train(float speed = 100) : speed(speed) {} // 重载 travelTime 函数 float travelTime(float distance) override { return distance / speed; } // 重载 setSpeed 函数 void setSpeed(float speed) override { 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 << '飞机的旅程时间:' << v->travelTime(d) << endl; } else { v = &t; v->setSpeed(s); cout << '火车的旅程时间:' << v->travelTime(d) << endl; } } return 0; }

// 输入样例: // 1 375 2700

// 输出样例: // 飞机的速度:1000 // 火车的速度:100 // 请输入交通工具类型号(1 飞机,2 火车)、速度以及路程: // 飞机的旅程时间:7.2

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

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

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