Quel sera le statut d'un pointeur d'objet lorsqu'un nouveau constructeur de classe lancera une exception en C++? Prenez le code suivant par exemple:Statut du pointeur d'objet après l'apparition d'un nouveau constructeur - C++
CMyClass * pobjMyClass = (CMyClass *)0xA5A5A5A5;
try
{
pobjMyClass = new CMyClass(); // Exception thrown in constructor
}
catch (...) {}
Lorsque ce code est exécuté quelle sera la valeur de pobjMyClass
être, après l'exception est levée? Un pointeur vers une instance non valide de CMyClass
, 0xA5A5A5A5
, NULL
, une valeur non initialisée aléatoire ou autre chose? Merci.
Vous l'avez sûrement déjà essayé? – TonyK
@TonyK, en essayant les choses ne fournit que la moitié de la réponse - comment cela fonctionne sur * votre * compilateur. Il est souvent utile de savoir comment cela fonctionne universellement. C++ est plein d'embûches, et il est bon d'être prudent. –
Même ainsi, Mark - sûrement Jim l'a essayé? Qu'est-il arrivé? – TonyK