#include <iostream>
using std::cout;
class Auto {
public:
Auto() { }
virtual void Fahren() {cout <<"Autofahren\n"; }
};
class BMW : public Auto {
public:
void Fahren() {
cout << "BMW fahren\n";
Beschleunigen();
}
virtual void Beschleunigen() { cout << "BMW beschleunigen\n";}
};
class dreierBMW: public BMW {
public:
dreierBMW() {}
void Beschleunigen() {cout << "3er BMW beschleunigen\n";};
};
int main() {
BMW* meinBMW = new dreierBMW;
Auto* meinAuto = meinBMW;
meinAuto->Fahren();
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBzdGQ6OmNvdXQ7CgpjbGFzcyBBdXRvIHsKICBwdWJsaWM6ICAKICBBdXRvKCkgeyB9CiAgdmlydHVhbCB2b2lkIEZhaHJlbigpIHtjb3V0IDw8IkF1dG9mYWhyZW5cbiI7IH0KfTsKIApjbGFzcyBCTVcgOiBwdWJsaWMgQXV0byB7CnB1YmxpYzoKICB2b2lkIEZhaHJlbigpIHsKICAgIGNvdXQgPDwgIkJNVyBmYWhyZW5cbiI7CiAgICBCZXNjaGxldW5pZ2VuKCk7CiAgfQogIHZpcnR1YWwgdm9pZCBCZXNjaGxldW5pZ2VuKCkgeyBjb3V0IDw8ICJCTVcgYmVzY2hsZXVuaWdlblxuIjt9Cn07CiAKY2xhc3MgZHJlaWVyQk1XOiBwdWJsaWMgQk1XIHsKICBwdWJsaWM6CiAgZHJlaWVyQk1XKCkge30KICB2b2lkIEJlc2NobGV1bmlnZW4oKSB7Y291dCA8PCAiM2VyIEJNVyBiZXNjaGxldW5pZ2VuXG4iO307Cn07CgppbnQgbWFpbigpIHsKICBCTVcqIG1laW5CTVcgPSBuZXcgZHJlaWVyQk1XOwogCiAgQXV0byogbWVpbkF1dG8gPSBtZWluQk1XOwogCiAgbWVpbkF1dG8tPkZhaHJlbigpOwp9CiAK