"L'acquisition de ressources par initialisation" est aussi appelée "L'acquisition de ressource, c'est l'initialisation", traduction directe de l'anglais "ressource acquisition is initialization" (RAII).
Il s'agit d'une technique de programmation qui permet une gestion automatique des ressources informatiques (mémoire, fichiers, locks, connexion à une API, ...). Elle permet en effet d'assurer la libération immédiate des ressources lorsque celles-ci ne sont plus utiles, que ce soit dans le cadre d'un fonctionnement normal ou bien de conditions exceptionnelles (erreurs).
Cette technique est apparue à la suite de discussions sur l'évolution du langage C++ (début des années 90 si ma mémoire ne me fait pas défaut). Certains souhaitaient l'intégration dans C++ d'un mécanisme de ramasse-miettes (garbage collector = gestion automatique de la mémoire), mécanisme déjà présent dans des langages comme LISP. Finalement la technique d'acquisition de ressources par initialisation s'est imposée face à cette approche.
L'efficacité (libération de ressource immédiate), la robustesse et l'universalité (pas uniquement utilisable pour la mémoire) de l'acquisition de ressources par initialisation explique que, bien qu'il existe de bonnes solutions de ramasse-miettes pour C++, ces dernières ne soient jamais devenues populaires.
La technique repose sur la création d'objet dans le tas (heap) et sur un mécanisme de destructeurs appelés automatiquement. Si C++ connaît ces notions, des langage moins complets comme Java ne permettent pas de mettre en place cette technique, il faut alors se contenter du ramasse-miette.
L'article sur Wikipedia
Les pages c++ de Bjarne Stroustrup, voir en particulier les FAQs
Derniers commentaires
jeu., 03.05.2012 01:38
mer., 21.03.2012 15:24
Dans certains cas, il et aussi nécessaire d'ajouter l'utilisateur (user dans le cas du eee-pc sous xandros) dans le [...]
dim., 12.02.2012 17:56
dim., 12.02.2012 17:55
mer., 04.01.2012 08:46
ven., 30.12.2011 11:01
Il semblerait que les oeuvres Begson soient désormais dans le domaine public...
jeu., 29.12.2011 15:19
J'ai remplacé Web Développer par Firebug que j'utilise à la place.
sam., 17.12.2011 11:21
Sous Linux, testdisk est à la fois plus efficace et plus simple à utiliser pour récupérer un fichier (menu 'avanced' un [...]
lun., 21.11.2011 18:06
lun., 26.09.2011 10:49
mer., 24.08.2011 13:01
test du filtrage de commentaire: ce commentaire doit apparaître...
jeu., 09.06.2011 08:55
Exact! Nous n'avons que des problèmes avec eux: stock non mis à jour, bouteilles perdues, et toujours les mêmes [...]
sam., 14.05.2011 12:30
Bonjour, merci pour ce commentaire. De fait, comme indiqué sur la page principale, je ne tiens plus à jour cette [...]
sam., 14.05.2011 10:06
Bonjour Votre site est tres bien fait. Les delais ont considerablement augmentés. Nous sommes en train depasser à 5 [...]
mar., 05.04.2011 00:34
Oops j'avais oublié de répondre à ce commentaire. Il agissait de morceaux de la renaissance allemande...