Quale sarà lo stato di un puntatore oggetto quando un nuovo costruttore di classi genera un'eccezione in C++? Prendere il seguente codice, ad esempio:Stato puntatore oggetto dopo che il nuovo costruttore genera eccezioni - C++
CMyClass * pobjMyClass = (CMyClass *)0xA5A5A5A5;
try
{
pobjMyClass = new CMyClass(); // Exception thrown in constructor
}
catch (...) {}
Quando questo codice viene eseguito quale sarà il valore di pobjMyClass
essere, dopo l'eccezione viene generata? Un puntatore a un'istanza non valida di CMyClass
, 0xA5A5A5A5
, NULL
, un valore casuale non inizializzato o qualcos'altro? Grazie.
Sicuramente ci hai provato? – TonyK
@TonyK, provare le cose fornisce solo la metà della risposta - come funziona su * il tuo * compilatore. Spesso è utile sapere come funziona universalmente. Il C++ è pieno di insidie, ed è bello essere prudenti. –
Anche così, Mark - sicuramente Jim l'ha provato? Quello che è successo? – TonyK