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 

template et conflit de noms

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





PostPosted: Sat Jul 10, 2004 12:42 am    Post subject: template et conflit de noms Reply with quote



Bonjour,

Ce code ne compile pas ( avec g++ 3.2 ) :

template <class T, int N>
class Hash
{
int size;
// .....

public:
int size();
// ......
};

Si je comprends le message du compilateur, on me dit que size est déclaré 2
fois.. Comment contourner le problème ?

Merci de votre aide.


Back to top
Fabien LE LEZ
Guest





PostPosted: Sat Jul 10, 2004 12:51 am    Post subject: Re: template et conflit de noms Reply with quote



On Sat, 10 Jul 2004 02:42:49 +0200, "henri" <spam (AT) spam (DOT) spam>:

Quote:
int size;
int size();

Si je comprends le message du compilateur, on me dit que size est déclaré 2
fois..

C'est bien le cas : il n'est pas possible d'avoir une variable et une
fonction avec le même nom, dans le même scope.
Ça n'a rien à voir avec les templates, ni même avec le fait d'être à
l'intérieur d'une classe.

Quote:
Comment contourner le problème ?

Changer le nom de la variable ou de la fonction.
Je conseille même d'utiliser des conventions différentes pour les
variables et les fonctions. Perso je mets toujours les initiales d'une
fonction en majuscules :

int size();
int Size();

D'ailleurs, histoire de ne pas être emmerdé avec les conflits de noms,
j'écris souvent mes identifiants en français, pour qu'il n'y ait aucun
risque de confusion avec les fonctions de la SL :

int taille;
int Taille();


Note : si jamais tu veux offrir la même interface que les conteneurs
de la STL, tu peux écrire :

size_t size_;
size_t size();



--
schtroumpf schtroumpf
Jean-Emile de France

Back to top
drkm
Guest





PostPosted: Sat Jul 10, 2004 1:37 am    Post subject: Re: template et conflit de noms Reply with quote



"henri" <spam (AT) spam (DOT) spam> writes:

Quote:
Si je comprends le message du compilateur, on me dit que size est déclaré 2
fois.. Comment contourner le problème ?

Changer de nom ?

--drkm

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.