Il s'agit d'un code issu d'un quiz réalisé plus tôt dans la journée. Langage : C++.
class Shape
{
protected:
int *x;
int *y;
public:
void draw()
{
//we were supposed to add random code here.
}
};
On nous a demandé de créer un opérateur surchargé de notre choix et de l'implémenter dans main. J'étais un peu intimidé par les pointeurs et j'ai donc décidé de créer un constructeur comme suit :
class Shape
{
protected:
int *x;
int *y;
public:
void draw()
{
cout<<*x<<endl;
}
Shape(){};
Shape{int a, int b)
{
x = &a; //this I thought would allow *x to act just like a normal variable.
y = &b;
}
//code for operator overloading.
};
J'avais l'impression d'avoir réussi le quiz, mais lorsque j'ai essayé de le mettre en œuvre sur mon ordinateur à la maison, je me suis rendu compte que la fonction "draw" renvoie des valeurs/adresses mémoire inutiles. Tout le reste en souffre. Pouvez-vous me dire pourquoi cela se produit ? Cela a-t-il un rapport avec la portée des pointeurs ? Je voudrais pouvoir utiliser les pointeurs comme des variables normales. Je ne suis qu'un étudiant. Merci d'avance !