¿Cuál será el estado de un puntero a objeto cuando un nuevo constructor de clase arroje una excepción en C++? Tome el siguiente código de ejemplo:Estado del puntero a objeto después de que el nuevo constructor arroje una excepción - C++
CMyClass * pobjMyClass = (CMyClass *)0xA5A5A5A5;
try
{
pobjMyClass = new CMyClass(); // Exception thrown in constructor
}
catch (...) {}
Cuando este código se ejecuta lo que será el valor de pobjMyClass
ser, después se produce la excepción? Un puntero a una instancia no válida de CMyClass
, 0xA5A5A5A5
, NULL
, algún valor aleatorio no inicializado o algo más? Gracias.
Seguramente has probado esto? – TonyK
@TonyK, probar cosas solo proporciona la mitad de la respuesta: cómo funciona en * su * compilador. A menudo es útil saber cómo funciona universalmente. C++ está lleno de trampas, y es bueno ser precavido. –
Aun así, Mark - ¿seguro que Jim lo ha probado? ¿Que pasó? – TonyK