So I came across a code snippet which demonstrated that if we want forced dynamic allocation of any class object, we should make its destructor private.
I tried that and yes it doesn't allow one to instantiate object on stack. But when I instantiated a dynamically allocated instance and tried deleting the object (or it would cause leak) - I kept on getting warning about destructor being private.
How can I properly manage memory of a dynamically allocated object which has a private destructor?