#include <iostream>
using namespace std;
class Vehicle {
public:
Vehicle() {
cout << "Default Konstruktor der Basis-Klasse" << endl;
}
Vehicle(int x) {
cout << "param. Konstruktor der Basis-Klasse" << endl;
}
string brand = "Ford";
void honk() {
cout << "Tuut, tuut \n";
}
};
class Car : public Vehicle {
public:
Car() : color("red") { // Constructor with initialization list
}
Car(string col) : color(col) {
//_maxSpeed = 200;
cout << "Konstruktor der Car-Klasse" << endl;
setMaxSpeed(200);
}
Car(string col, int s) : color(col) {
//_maxSpeed = 200;
setMaxSpeed(s);
}
string color; // Atributen, Membervariable
void drucke() {
cout << "Farbe: " << color << brand << endl;
Vehicle::honk();
}
// getter/setter
void setMaxSpeed(int s) {
if(s < 160)
_maxSpeed = s;
else
_maxSpeed = 160;
}
int getMaxSpeed() {
return _maxSpeed;
}
private:
int _maxSpeed;
};
int main() {
Car myObj("blue"); // Erzeugen das Objekt myObj der Klasse Car
cout << "Farbe: " << myObj.color << endl;
myObj.color = "red";
myObj.drucke();
printf("Farbe: %s \n", myObj.color.c_str());
myObj.setMaxSpeed(200);
printf("Max Speed: %d \n", myObj.getMaxSpeed());
cout << myObj.brand << endl;
myObj.honk();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgVmVoaWNsZSB7CnB1YmxpYzoKCVZlaGljbGUoKSB7CgkJY291dCA8PCAiRGVmYXVsdCBLb25zdHJ1a3RvciBkZXIgQmFzaXMtS2xhc3NlIiA8PCBlbmRsOwoJfQoKCVZlaGljbGUoaW50IHgpIHsKCQljb3V0IDw8ICJwYXJhbS4gS29uc3RydWt0b3IgZGVyIEJhc2lzLUtsYXNzZSIgPDwgZW5kbDsKCX0KCXN0cmluZyBicmFuZCA9ICJGb3JkIjsKCXZvaWQgaG9uaygpIHsKCQljb3V0IDw8ICJUdXV0LCB0dXV0IFxuIjsKCX0KfTsKCmNsYXNzIENhciA6IHB1YmxpYyBWZWhpY2xlIHsKcHVibGljOgoJQ2FyKCkgOiBjb2xvcigicmVkIikgewkJLy8gQ29uc3RydWN0b3Igd2l0aCBpbml0aWFsaXphdGlvbiBsaXN0Cgl9CglDYXIoc3RyaW5nIGNvbCkgOiBjb2xvcihjb2wpIHsKCQkvL19tYXhTcGVlZCA9IDIwMDsKCQljb3V0IDw8ICJLb25zdHJ1a3RvciBkZXIgQ2FyLUtsYXNzZSIgPDwgZW5kbDsKCQlzZXRNYXhTcGVlZCgyMDApOwoJfQoJQ2FyKHN0cmluZyBjb2wsIGludCBzKSA6IGNvbG9yKGNvbCkgewoJCS8vX21heFNwZWVkID0gMjAwOwoJCXNldE1heFNwZWVkKHMpOwoJfQoJc3RyaW5nIGNvbG9yOwkJCQkvLyBBdHJpYnV0ZW4sIE1lbWJlcnZhcmlhYmxlCgkKCXZvaWQgZHJ1Y2tlKCkgewoJCWNvdXQgPDwgIkZhcmJlOiAiIDw8IGNvbG9yIDw8IGJyYW5kIDw8IGVuZGw7CgkJVmVoaWNsZTo6aG9uaygpOwoJfQoJLy8gZ2V0dGVyL3NldHRlcgoJdm9pZCBzZXRNYXhTcGVlZChpbnQgcykgewoJCWlmKHMgPCAxNjApCgkJCV9tYXhTcGVlZCA9IHM7CgkJZWxzZQoJCQlfbWF4U3BlZWQgPSAxNjA7Cgl9CglpbnQgZ2V0TWF4U3BlZWQoKSB7CgkJcmV0dXJuIF9tYXhTcGVlZDsKCX0KcHJpdmF0ZToKCWludCBfbWF4U3BlZWQ7Cn07CgppbnQgbWFpbigpIHsKCUNhciBteU9iaigiYmx1ZSIpOwkJCS8vIEVyemV1Z2VuIGRhcyBPYmpla3QgbXlPYmogZGVyIEtsYXNzZSBDYXIKCQoJY291dCA8PCAiRmFyYmU6ICIgPDwgbXlPYmouY29sb3IgPDwgZW5kbDsKCW15T2JqLmNvbG9yID0gInJlZCI7CglteU9iai5kcnVja2UoKTsKCXByaW50ZigiRmFyYmU6ICVzIFxuIiwgbXlPYmouY29sb3IuY19zdHIoKSk7CglteU9iai5zZXRNYXhTcGVlZCgyMDApOwoJcHJpbnRmKCJNYXggU3BlZWQ6ICVkIFxuIiwgbXlPYmouZ2V0TWF4U3BlZWQoKSk7Cgljb3V0IDw8IG15T2JqLmJyYW5kIDw8IGVuZGw7CglteU9iai5ob25rKCk7CglyZXR1cm4gMDsKfQ==