#include <iostream>
using namespace std;
class Base
{
public:
Base()
{
func();
}
virtual void func()
{
cout << "base - func" << endl;
}
};
class Derived : public Base
{
public:
virtual void func()
{
cout << "derive - func: crasht wenn 'base - func' nicht vorher aufgerufen wurde" << endl;
}
};
int main() {
Base *d = new Derived();
d->func();
delete d;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgQmFzZQp7CnB1YmxpYzoKICAgIEJhc2UoKQogICAgewogICAgICAgIGZ1bmMoKTsKICAgIH0KCiAgICB2aXJ0dWFsIHZvaWQgZnVuYygpCiAgICB7CiAgICAgICAgY291dCA8PCAiYmFzZSAtIGZ1bmMiIDw8IGVuZGw7CiAgICB9Cn07CgpjbGFzcyBEZXJpdmVkIDogcHVibGljIEJhc2UKewpwdWJsaWM6CiAgICB2aXJ0dWFsIHZvaWQgZnVuYygpCiAgICB7CiAgICAgICAgY291dCA8PCAiZGVyaXZlIC0gZnVuYzogY3Jhc2h0IHdlbm4gJ2Jhc2UgLSBmdW5jJyBuaWNodCB2b3JoZXIgYXVmZ2VydWZlbiB3dXJkZSIgPDwgZW5kbDsKICAgIH0KfTsKCmludCBtYWluKCkgewoKCUJhc2UgKmQgPSBuZXcgRGVyaXZlZCgpOwoJZC0+ZnVuYygpOwoJZGVsZXRlIGQ7CgoJcmV0dXJuIDA7Cgp9