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 49 50 51 52
| #include <iostream>
/* j'utilise une structure car cela permettra de modifier plus facilement les données de bases ;) */
struct Point{
Point():Point{0,0,0}{
}
Point(int x, int y, int z):x{x},y{y},z{z}{
}
int x;
int y;
int z;
};
/* surcharge de l'opérateur << adaptée à un Point */
std::ostream & operator <<(std::ostream & os, Point const & p){
os<<"x : "<<p.x<<"\n"
<<"y : "<<p.y<<"\n"
<<"z : "<<p.z<<"\n";
return os;
}
int main(){
/* Créons un point dont les valeurs sont
* x = 1
* y = 2
* z = 3
*/
Point lePoint{1,2,3};
std::cout<<"lePoint affiche sans surprise\n"
<<lePoint;
Point & laRef = lePoint;
std::cout<<"laRef présente les valeurs de lePoint\n"
<<laRef;
/* Modifions les valeurs de lePoint : */
lePoint.x *=2;
lePoint.y *=2;
lePoint.z *=2;
std::cout<<"toutes les donnees de lePoint changent:\n"
<<lePoint;
std::cout<<"qu'en est-il de laRef?\n"
<<laRef;
/* modifions laRef pour qu'elle corresponde à
* x = 10
* y = 12
* z = 15
*/
laRef.x = 10;
laRef.y = 12;
laRef.z = 15;
std::cout<<"les valeurs de laRef changent\n"
<<laRef;
std::cout<<"Qu'en est il de lePoint?\n"
<<lePoint;
return 0;
} |