1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| void f(Personnage** p) {
Personnage* jeanbis = new Personnage("jeanbis");
delete *p; // le delete est bon ?
jeanbis->setVie(-1);
*p = jeanbis;
}
/**
* Cette fonction est fausse, right ?
*/
void h(Personnage& p) {
Personnage hervebis("hervebis");
hervebis.setVie(-2);
p = hervebis;
}
/**
* La même que celle au dessus mais par allocation dynamique
*/
void hbis(Personnage& p) {
Personnage* pouletbis = new Personnage("pouletbis");
pouletbis->setVie(-3);
p = *pouletbis;
delete pouletbis; // le delete est bon ?
}
/**
* bidon, pour afficher
*/
void affiche(Personnage const& p) {
p.toString();
}
int main() {
Personnage* jean = new Personnage("jean");
Personnage herve("herve");
Personnage poulet("poulet");
f(&jean);
h(herve);
hbis(poulet);
cout << "jean :: 0 est devenu ";
affiche(*jean);
cout << "herve :: 0 est devenu ";
affiche(herve);
cout << "poulet :: 0 est devenu ";
affiche(poulet);
delete jean;
} |
Partager