#include <iostream>
using namespace std;
class Vehicle {
public:
void SetSpeed(int speedToSet) {
speed = speedToSet;
}
void PrintSpeed() {
cout << speed;
}
private:
int speed;
};
class Car : public Vehicle {
public:
void PrintCarSpeed() {
cout << "Speed: ";
PrintSpeed();
}
};
class AnimalPowered : public Vehicle {
public:
void SetAnimal(string animalToSet) {
animal = animalToSet;
}
void PrintAnimalSpeed() {
cout << animal << " speed: ";
PrintSpeed();
}
private:
string animal;
};
int main() {
Car myCar;
AnimalPowered wagon;
myCar.SetSpeed(50);
wagon.SetSpeed(3);
wagon.SetAnimal("Camel");
myCar.PrintCarSpeed();
cout << endl;
wagon.PrintAnimalSpeed();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgVmVoaWNsZSB7CiAgIHB1YmxpYzoKICAgICAgdm9pZCBTZXRTcGVlZChpbnQgc3BlZWRUb1NldCkgewogICAgICAgICBzcGVlZCA9IHNwZWVkVG9TZXQ7CiAgICAgIH0KCiAgICAgIHZvaWQgUHJpbnRTcGVlZCgpIHsKICAgICAgICAgY291dCA8PCBzcGVlZDsKICAgICAgfQoKICAgcHJpdmF0ZToKICAgICAgaW50IHNwZWVkOwp9OwoKY2xhc3MgQ2FyIDogcHVibGljIFZlaGljbGUgewogICBwdWJsaWM6CiAgICAgIHZvaWQgUHJpbnRDYXJTcGVlZCgpIHsKICAgICAgICAgY291dCA8PCAiU3BlZWQ6ICI7CiAgICAgICAgIFByaW50U3BlZWQoKTsKICAgICAgfQp9OwoKY2xhc3MgQW5pbWFsUG93ZXJlZCA6IHB1YmxpYyBWZWhpY2xlIHsKICAgcHVibGljOgogICAgICB2b2lkIFNldEFuaW1hbChzdHJpbmcgYW5pbWFsVG9TZXQpIHsKICAgICAgICAgYW5pbWFsID0gYW5pbWFsVG9TZXQ7CiAgICAgIH0KCiAgICAgIHZvaWQgUHJpbnRBbmltYWxTcGVlZCgpIHsKICAgICAgICAgY291dCA8PCBhbmltYWwgPDwgIiBzcGVlZDogIjsKICAgICAgICAgUHJpbnRTcGVlZCgpOwogICAgICB9CgogICBwcml2YXRlOgogICAgICBzdHJpbmcgYW5pbWFsOwp9OwoKaW50IG1haW4oKSB7CiAgIENhciBteUNhcjsKICAgQW5pbWFsUG93ZXJlZCB3YWdvbjsKCiAgIG15Q2FyLlNldFNwZWVkKDUwKTsKICAgd2Fnb24uU2V0U3BlZWQoMyk7CiAgIHdhZ29uLlNldEFuaW1hbCgiQ2FtZWwiKTsKCiAgIG15Q2FyLlByaW50Q2FyU3BlZWQoKTsKICAgY291dCA8PCBlbmRsOwogICB3YWdvbi5QcmludEFuaW1hbFNwZWVkKCk7CgogICByZXR1cm4gMDsKfQ==