Supposons que j'écrive ma propre exception qui dérive de std::exception et que je redéfinisse la fonction what() pour lui faire afficher un message particulier :
Puisque cette fonction retourne un objet const char* alloué sur la pile, je voulais savoir à l'utilisation si la zone pointée par le pointeur retourné par what() sera toujours valide ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 const char* what() const throw() { return "Mon exception"; }
Par exemple est - ce quepointe toujours sur une zone de mémoire valide sachant que l'on est sorti du scope de la fonction what() ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part e.what()
Apparement, ça marche mais j'ai quand même un doute ...
Partager