class CToto{ public int val; }; void f1(CToto t) // valeur { t.val=1; } void f2(CToto& t) // référence { t.val=2; } void f3(CToto* p) // Pointeur { // Contrôler si p est non NULL !! p->val=3; } void f4(const CToto& t) { t.val=4; // Erreur de compilation } main() { CToto toto; toto.val=0; f1(toto); // Ici, toto.val vaut toujours 0 f2(toto); // Ici, toto.val vaut 2 f3(&toto); // Ici, toto.val vaut 3 }