#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;

}