 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
henri Guest
|
Posted: Sat Jul 10, 2004 12:42 am Post subject: template et conflit de noms |
|
|
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
|
Posted: Sat Jul 10, 2004 12:51 am Post subject: Re: template et conflit de noms |
|
|
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
|
Posted: Sat Jul 10, 2004 1:37 am Post subject: Re: template et conflit de noms |
|
|
"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 |
|
 |
|
|
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
|
|