Private Constructors can't be access from any derived classes neither from another class.
So you have to provide a public function that calls the private constructor if the object has not been initialized, or you have to return an instance to the object, if it was initialized.
This can be useful for objects that can't be instantiated.