Intro :
Parfois on a besoin simplement d’utiliser une variable ou un objet de manière temporaire, pour ensuite le ou la détruire facilement après son utilisation.
En C++, les objets résidant sur la pile sont automatiquement détruits lors de la sortie d’un bloc de portée, y compris dans le cas d’une levée d’exception ; leur destructeur est appelé avant que l’exception ne se propage.
On peut alors se servir de ce mécanisme pour détruire automatiquement un objet une fois effectué son utilisation.
Prérequis :
– Avoir quelques notions de C++
Explications :
Il s’agit de manipuler un objet local qui sera utilisé dans la portée d’un bout de code et qui sera ensuite libérée lors de sa destruction.
Système de profiling :
Exemple :
void ExempleAvecRAII()
{
// On acquiert une ressource (un fichier)
Fichier logFile("Log.txt");
logFile.Write("Bonjour!");
// Le fichier logFile sera automatiquement détruit
// après avoir atteint la fin de ce bloc de code.
// On n'a pas besoin d'appeler une quelconque fonction
// close()
/* On peut lever aussi une exception juste ici. */
if (logFile.writeHasFailed())
{
throw std::exception("Erreur!");
}
}
Résumé :
Nous avons présenté le principe du RAII. Ce principe permet de simplifier les initialisation du constructeur d’un objet, sans avoir à appeler le destructeur.

