Pointeurs

Résolu
ph0ton Messages postés 13 Date d'inscription mardi 21 mai 2002 Statut Membre Dernière intervention 11 août 2004 - 9 août 2004 à 13:43
ph0ton Messages postés 13 Date d'inscription mardi 21 mai 2002 Statut Membre Dernière intervention 11 août 2004 - 9 août 2004 à 14:25
salut,
j'ai beaucoup de mal a ecrire des pointeurs correctement, et j'aurai besoin de l'avis d'un connaisseur pour savoir si ce que j'ai ecrit est correct ou carrement incoherent (ou meme si il n'y a pas une autre facon de l'ecrire)
Ca marche mais c'est pas dit que ce soit bon
alors voila, je balance mon bout de code:
//
// Une classe
//
class Mtest
{
private:
int val;
public:
int* Get();
void Set(int);
};
int* Mtest::Get(){return &val;}
void Mtest::Set(int _v){val=_v;}
//
// n'importe ou dans le code
//
Mtest test;
test.Set(5); // val<=5
int *a;
*&a=test.Get(); // a<=5
*a=*a*2; // val<=a<=6
*&a=test.Get(); // a<=6
a=a;
----------------------------------------------------------

voila, merci d'avance de bien vouloir me repondre

by ph0ton
fR0m m0NtpElLi3r !!!!

8 réponses

cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
9 août 2004 à 13:59
cette ecriture *&a est inutile, du reference puis deference ton pointeur, retour à la case depart :D
3
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
9 août 2004 à 14:15
test.Set( *a );
3
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
9 août 2004 à 13:50
int *a;
*&a=test.Get(); // a<=5
*a=*a*2; // val<=a<=6
*&a=test.Get(); // a<=6
a=a;

si tu veux modifier la valeur de ton pointeur, *a pas *&a
pour l'adresse de ta variable, nimporte kel type de variable, c'est &a.
C'est tt skil ya a savoir .

++
0
ph0ton Messages postés 13 Date d'inscription mardi 21 mai 2002 Statut Membre Dernière intervention 11 août 2004
9 août 2004 à 14:10
Le probleme maintenant c'est que je n'arrive pas a modifier la valeur de 'val' par l'intermediaire de 'a'.
Je suis trop nul. T_T
Mais je vais continuer de chercher.
En tt cas, merci pour vos reponses.

by ph0ton
fR0m m0NtpElLi3r !!!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ph0ton Messages postés 13 Date d'inscription mardi 21 mai 2002 Statut Membre Dernière intervention 11 août 2004
9 août 2004 à 14:17
djl: en enlevant le *& ca marche aussi ^^'
l'ecriture est donc correcte ainsi ???

by ph0ton
fR0m m0NtpElLi3r !!!!
0
ph0ton Messages postés 13 Date d'inscription mardi 21 mai 2002 Statut Membre Dernière intervention 11 août 2004
9 août 2004 à 14:21
Merci bcp les gars, votre aide m'a été precieuse.
Mieux vaut un qui sait que dix qui cherchent.
PS: test.Set(*a); je suis peut etre trop scolaire, mais je prefere que ce soit une fonction qui me retourne la valeur d'un attribut.

by ph0ton
fR0m m0NtpElLi3r !!!!
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
9 août 2004 à 14:22
c'est correcte dans le fond, mais la c'est inutile et du coup moins performant
0
ph0ton Messages postés 13 Date d'inscription mardi 21 mai 2002 Statut Membre Dernière intervention 11 août 2004
9 août 2004 à 14:25
si les performances s'en melent...
Je modifierais donc cette mauvaise habitude.

by ph0ton
fR0m m0NtpElLi3r !!!!
0
Rejoignez-nous