The purpose of making the constructor private is to make it impossible to create an instance of the class directly using the constructor from outside the class.
The instance can only be created from within the class or a friend class.
This is usually used in the Singleton Pattern in order to force the a user of the class to call a special method for instance creation.
Singleton Pattern & its implementation with C++[
^]
Singleton in C++: Before and after[
^]
When it comes to creating objects in a private constructor, you do it in the same fashion as for a public constructor.