C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

pointeur et reference

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French)
View previous topic :: View next topic  
Author Message
dnanar
Guest





PostPosted: Thu Apr 13, 2006 8:06 pm    Post subject: pointeur et reference Reply with quote



Bonjour,


J' essaye d' utiliser les références pour retourner un pointeur. En
fait, j' ai une classe qui possède un pointeur, et je voudrais
implementer une fonction "get" pour le pointeur. J' ai essayé de faire
comme ceci (ma classe se nomme "CASE", le pointeur appartenant à ma
classe se nomme "top"):

void CASE::getC(CASE& R)
{
R = *top;
return;
}

//main, myCase est une instanciation de la classe CASE
CASE test();
myCase.getC(1, test);
cout << test.num << endl;


Mais cela ne marche pas ! Quelqu' un aurait une idée svp ?


Merci d' avance.
Back to top
Sylvain
Guest





PostPosted: Thu Apr 13, 2006 9:06 pm    Post subject: Re: pointeur et reference Reply with quote



dnanar wrote on 13/04/2006 21:48:
Quote:

J' essaye d' utiliser les références pour retourner un pointeur. En
fait, j' ai une classe qui possède un pointeur, et je voudrais
implementer une fonction "get" pour le pointeur.

le point est: voulez vous retourner le *pointeur* membre (ce qui
autorise les cas où ce pointeur est null, mais force le test par le
client) ou une référence sur l'instance pointée (dans ce cas le client
utilise sans déréférencer mais la fonction ne peut plus gérer le cas où
lepointeur est null (sauf exception ou allocation à la demande, les 2
peuvent ne pas être acceptable).

glup, j'ai lu "fonction" sans voir votre prototype, donc c'est une
procédure.

Quote:
J' ai essayé de faire comme ceci (ma classe se
nomme "CASE", le pointeur appartenant à ma
classe se nomme "top"):

void CASE::getC(CASE& R)
{
R = *top;
return;
}

que pensez vous qu'il advient si vous n'insérez pas un "return" ??
le code va continuer à la ligne suivante ?

Quote:
CASE test();

ceci déclare une fonction nommée test qui retourne une instance de CASE,
vous ne vouliez pas faire cela, mais juste déclarer une instance, donc:

CASE test;

Quote:
myCase.getC(1, test);

fonctionnera avec le chgt ci-avant, mais pourquoi ne pas écrire:

struct CASE {
int num;
CASE* top;
[const] CASE& getC() const {
return *top;
}
};

CASE& test = myCase.getC();

voire: cout << myCase.getC().num;

Sylvain.
Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.