#include <iostream>
using namespace std;
class Vehicle {
public:
void SetSpeed(int speedToSet) {
speed = speedToSet;
}
void PrintSpeed() {
cout << speed;
}
private:
int speed;
};
class Carriage {
public:
void SetSeats(int seatsToSet) {
seats = seatsToSet;
}
void PrintSeats() {
cout << seats << " seats in cart";
}
private:
int seats;
};
class AnimalDrawnCarriage : public Vehicle, public Carriage {
public:
void SetAnimal(string animalToSet) {
animal = animalToSet;
}
void PrintAnimalSpeed() {
cout << animal << " speed: ";
PrintSpeed();
}
private:
string animal;
};
int main() {
AnimalDrawnCarriage cart;
cart.SetSpeed(7);
cart.SetSeats(3);
cart.SetAnimal("Horse");
cart.PrintAnimalSpeed();
cout << endl;
cart.PrintSeats();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgVmVoaWNsZSB7CiAgIHB1YmxpYzoKICAgICAgdm9pZCBTZXRTcGVlZChpbnQgc3BlZWRUb1NldCkgewogICAgICAgICBzcGVlZCA9IHNwZWVkVG9TZXQ7CiAgICAgIH0KCiAgICAgIHZvaWQgUHJpbnRTcGVlZCgpIHsKICAgICAgICAgY291dCA8PCBzcGVlZDsKICAgICAgfQoKICAgcHJpdmF0ZToKICAgICAgaW50IHNwZWVkOwp9OwoKY2xhc3MgQ2FycmlhZ2UgewogICBwdWJsaWM6CiAgICAgIHZvaWQgU2V0U2VhdHMoaW50IHNlYXRzVG9TZXQpIHsKICAgICAgICAgc2VhdHMgPSBzZWF0c1RvU2V0OwogICAgICB9CgogICAgICB2b2lkIFByaW50U2VhdHMoKSB7CiAgICAgICAgIGNvdXQgPDwgc2VhdHMgPDwgIiBzZWF0cyBpbiBjYXJ0IjsKICAgICAgfQoKICAgcHJpdmF0ZToKICAgICAgaW50IHNlYXRzOwp9OwoKY2xhc3MgQW5pbWFsRHJhd25DYXJyaWFnZSA6IHB1YmxpYyBWZWhpY2xlLCBwdWJsaWMgQ2FycmlhZ2UgewogICBwdWJsaWM6CiAgICAgIHZvaWQgU2V0QW5pbWFsKHN0cmluZyBhbmltYWxUb1NldCkgewogICAgICAgICBhbmltYWwgPSBhbmltYWxUb1NldDsKICAgICAgfQoKICAgICAgdm9pZCBQcmludEFuaW1hbFNwZWVkKCkgewogICAgICAgICBjb3V0IDw8IGFuaW1hbCA8PCAiIHNwZWVkOiAiOwogICAgICAgICBQcmludFNwZWVkKCk7CiAgICAgIH0KCiAgIHByaXZhdGU6CiAgICAgIHN0cmluZyBhbmltYWw7Cn07CgppbnQgbWFpbigpIHsKICAgQW5pbWFsRHJhd25DYXJyaWFnZSBjYXJ0OwoKICAgY2FydC5TZXRTcGVlZCg3KTsKICAgY2FydC5TZXRTZWF0cygzKTsKICAgY2FydC5TZXRBbmltYWwoIkhvcnNlIik7CgogICBjYXJ0LlByaW50QW5pbWFsU3BlZWQoKTsKICAgY291dCA8PCBlbmRsOwogICBjYXJ0LlByaW50U2VhdHMoKTsKCiAgIHJldHVybiAwOwp9