Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <set>
- #include <string>
- #include <iostream>
- #include <vector>
- using namespace std;
- class Transport {
- public:
- Transport(int speed, int weight, int payload) : speed_(speed), weight_(weight), payload_(payload) {}
- int GetSpeed() {
- return speed_;
- }
- int GetWeight() {
- return weight_;
- }
- int GetPayload() {
- return payload_;
- }
- virtual void move() = 0;
- private:
- int speed_; //скорость (максимальная) (км/ч)
- int weight_; //масса (собственная) (тонн)
- int payload_; // грузоподъемность (тонн)
- };
- class Plane : public Transport {
- public:
- Plane(int speed, int weight, int payload, int max_height) : Transport(speed, weight, payload), max_height_(max_height) {}
- int GetHeight() {
- return max_height_;
- }
- void move() override {
- cout << "Лечу" << endl;
- }
- private:
- int max_height_; // максимальная высота (метров)
- };
- class Car : public Transport {
- public:
- Car(int speed, int weight, int payload, string transmition) : Transport(speed, weight, payload), transmition_(transmition) {}
- string GetTransmition() {
- return transmition_;
- }
- void move() override {
- cout << "Еду" << endl;
- }
- private:
- string transmition_; // коробка передач (automatic, manual)
- };
- class Ship : public Transport {
- public:
- Ship(int speed, int weight, int payload, int displacement) : Transport(speed, weight, payload), displacement_(displacement) {}
- int GetDisplacement() {
- return displacement_;
- }
- void move() override {
- cout << "Плыву" << endl;
- }
- private:
- int displacement_; // водоизмещение (тонн)
- };
- int main() {
- setlocale(LC_ALL, "ru");
- Plane pl(800, 200, 30, 10000);
- Car cr(200, 2, 1, "manual");
- Ship sh(30, 100, 50, 50);
- vector<Transport*> transport;
- transport.push_back(&pl);
- transport.push_back(&cr);
- transport.push_back(&sh);
- for (auto a : transport) {
- cout << "скорость: " << a->GetSpeed() << " км/ч " << ", масса " << a->GetWeight() << " тонн " << ", грузоподъемность " << a->GetPayload() << " ";
- a->move();
- cout << endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement