Annex F (informative) Core undefined behavior [ub]

F.6 [class]: Classes [ub.class]

F.6.3[ub:class.base.init.mem.fun]
Specified in: [class.base.init]

Calling a member function before all the mem-initializers for base classes have completed has undefined behavior.
[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]