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
| Plane p (...);
FlyingMachine m = p;
// la chose la plus sournoise de toutes. Et encore, on peut faire pire:
void f(FlyingMachine m);
...
{ Plane p(...); f(p); }
// Ceci justifie les constructeurs de recopie protégés,
// et la systématisation des entrées par référence constante
Plane * p = new Plane(...);
Plane * p2 = new Plane(...);
*p2 = *p; // pas toujours un intérêt
FlyingMachine *fm = 0;
*fm = *p; // ka boum
fm = new Plane(...);
*fm = *p; // OK, mais fumé, un "delete fm; fm=p;" est mieux
FlyingMachine *fm2 = new ovni(...);
*fm = *p;
// alors là, c'est strictement sans aucun intérêtn dangereux,
// et donc à proscrire!!
// On préfère définitivement:
delete fm2;
fm2 = p->clone(); |
Partager