[Example 1: class A {public:
A(int);
};
class B :public A {int j;
public:int f();
B(): A(f()), // undefined behavior, calls member function but base A not yet initialized
j(f()){}// defined, bases are all initialized};
class C {public:
C(int);
};
class D :public B, C {int i;
public:
D(): C(f()), // undefined behavior, calls member function but base C not yet initialized
i(f()){}// defined, bases are all initialized};
— end example]