/* Fichier infos3.cpp Notion de reference Transmission de parametres par reference Notion du modele de fonction (fonction modele) etc ... Voir l'execution pour comprendre le code */ #include #include using namespace std; void demo1() { cout << "Demo 1 : informations\n"; int age1 = 23, age2 = 18; cout << " info valeur adresse octets octets\n"; cout << setw(8) << "age1 " << setw(10) << age1 << setw(10) << (int) &age1 << setw(8) << sizeof(age1) << setw(8) << sizeof(int) << endl; cout << setw(8) << "age2 " << setw(10) << age2 << setw(10) << (int) &age2 << setw(8) << sizeof(age2) << setw(8) << sizeof(int) << endl; char sexe = 'F' ; cout << setw(8) << "sexe " << setw(10) << sexe << setw(10) << (int) &sexe << setw(8) << sizeof(sexe) << setw(8) << sizeof(char) << endl; int & r = age1 ; // r est une reference (un alias, un surnom) de age1 cout << setw(8) << "r " << setw(10) << r << setw(10) << (int) &r << setw(8) << sizeof(r) << setw(8) << sizeof(int) << endl; r = 29; // on modifie r cout << "r vaut maintenant : " << r << endl; cout << "age1 vaut : " << age1 << endl; } // fonction modele template void permuter(T &x, T &y) { T tempo = x; x = y; y = tempo; } void demo2() { cout << "Demo 2 : parametres transmis par reference\n"; int age1 = 23, age2 = 18; cout << "avant de permuter : age1 vaut " << age1 << " et age2 vaut " << age2 << endl; permuter(age1, age2); cout << "apres de permuter : age1 vaut " << age1 << " et age2 vaut " << age2 << endl; cout << endl << endl; char sexe1 = 'F', sexe2 = 'M'; cout << "avant de permuter : sexe1 vaut " << sexe1 << " et sexe2 vaut " << sexe2 << endl; permuter(sexe1, sexe2); cout << "apres de permuter : sexe1 vaut " << sexe1 << " et sexe2 vaut " << sexe2 << endl; float taille1 = 1.75, taille2 = 1.68; cout << "avant de permuter : taille1 vaut " << taille1 << " et taille2 vaut " << taille2 << endl; permuter(taille1, taille2); cout << "apres de permuter : taille1 vaut " << taille1 << " et taille2 vaut " << taille2 << endl; } int main() { demo1(); demo2(); return 0; } /* Exécution : Demo 1 : informations info valeur adresse octets octets age1 23 2686712 4 4 age2 18 2686708 4 4 sexe F 2686707 1 1 r 23 2686712 4 4 r vaut maintenant : 29 age1 vaut : 29 Demo 2 : parametres transmis par reference avant de permuter : age1 vaut 23 et age2 vaut 18 apres de permuter : age1 vaut 18 et age2 vaut 23 avant de permuter : sexe1 vaut F et sexe2 vaut M apres de permuter : sexe1 vaut M et sexe2 vaut F avant de permuter : taille1 vaut 1.75 et taille2 vaut 1.68 apres de permuter : taille1 vaut 1.68 et taille2 vaut 1.75 -------------------------------- Process exited after 0.0534 seconds with return value 0 Appuyez sur une touche pour continuer... */