#1 Le 17/12/2019, à 10:59
- chris7522
[C++] Declaration et initialisation de référence sur une structure
Bonjour a toutes et a tous ,
Tout dabord , voici le code :
#include <iostream>
struct Coordonnees
{
int x=5;
int y=10;
};
void change(Coordonnees &reference);
using namespace std;
int main()
{
Coordonnees point;
cout << "x (avant fonction) : " << point.x << endl;
cout << "y (avant fonction) : " << point.y << endl;
change(point);
cout << "x (apres fonction) : " << point.x << endl;
cout << "y (apres fonction) : " << point.y << endl;
return 0;
}
void change(Coordonnees &reference)
{
int temp;
temp=reference.x;
reference.x = reference.y;
reference.y = temp;
}
En regardant ce code , je ne comprends pas pourquoi la reference (&reference ) n'a pas été initialisé avec point , dans la mesure ou ma fonction "change" recoit une reference de type coordonnees . J'ai lu par ailleurs , qu'une référence doit etre initialisée des sa déclaration . Je voyais plutot ca de cette facon :
int main()
{
Coordonnees point;
int &reference = point;
.......
}
C'est pas tres claire dans ma tete . Merci de votre aide
Dernière modification par chris7522 (Le 17/12/2019, à 11:23)
Hors ligne
#2 Le 17/12/2019, à 12:20
- pingouinux
Re : [C++] Declaration et initialisation de référence sur une structure
Bonjour,
Peut-être ceci :
Coordonnees point;
Coordonnees &ref=point;
Hors ligne
#3 Le 17/12/2019, à 12:39
- NicoApi73
Re : [C++] Declaration et initialisation de référence sur une structure
Bonjour,
int &reference fait référence à une variable, qu'il faut que tu initialises impérativement. Dans l'exemple suivant, reference et n adresse le même emplacement mémoire.
int n;
int &reference = n;
Si tu fais n = 5, alors reference = 5
Si tu fais reference = 6, alors n = 6.
point est de type Coordonnees, reference est de type int. Ca ne va pas ensemble, il faut les mêmes types (ou en tout cas la même classe de base)
EDIT : passer par une structure est littéralement correct, néanmoins l'emploi d'une classe est souhaitable
Dernière modification par NicoApi73 (Le 17/12/2019, à 13:05)
Hors ligne
#4 Le 17/12/2019, à 17:22
- chris7522
Re : [C++] Declaration et initialisation de référence sur une structure
Merci a tous les deux , c'est parfaitement claire
Hors ligne