obsolete C++ constructor initialization syntax
In a new-style initialization list for a constructor, you must explicitly name each direct base class, even if it is the only base class.
Example
class B { public: B(); B( int ); }; class D : public B { public: D( int i ) : ( i ) {} // error, B was not named D( int i ) : B( i ) {} // OK };