1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| code foo(){
std::string str{"Hello "}; // str est construite ici, et est disponible pour toute la fonction
int a{5}; // a est construit ici, et est disponible pour toute la fonction
if(condition){ // les accolades crées une "protée secondaire"
std::string autre{"Salut "}; // dans laquelle on peut créer de nouvelles variables
int b{6};
/* je peux aussi bien manipuler str et a que
* autre et b ici, car les quatre données sont accessibles
*/
} /* b est "détruite" en premier
* autre est détruite en second
* car les données pour lesquelles nous n'avons pas recours
* à l'allocation dynamique de la mémoire sont détruites dans
* l'ordre inverse de leur déclaration
*/
int tab[7]; // tab est créé ici et contient la place pour représenter 7 int
a*=6; // OK: a existe encore et peut être manipulée
str+="World!";// OK: str existe encore et peut être manipulée
// autre +="le monde"; PAS OK: autre n'existe plus ici
}/* tab est détruit ici en premier, vu que c'est la dernière donnée à avoir été déclarée
* a est détruit ensuite
* et, enfin, str est détuite ici
*/ |