C++ destructor constructor