Why destructor needs to be accessible even when it is not called? Having class X, the following object initialization: