The constructor. Constructors should initialize the instance. This is a default constructor and does nothing. Derived classes must override this function. If the initialization fails the constructor must return a non-zero error value. In this case the instance will be deleted immediately without calling its destructor.