Class Template : variable membre de nom inconnu a priori ?
Salut,
Je cherche le moyen de faire une classe template ou je pourrai préciser le nom d'une variable de la classe qui servira de critère de trie uniquement lors de l'instanciation du template.
Je m'explique par un exemple très simple :
J'ai la classe A, qui est une classe ordinaire, elle comporte une variable membre nommé "toto", donc :
Code:
1 2 3 4 5
| class A
{
public :
int toto;
} |
J'ai la classe B, qui est une classe ordinaire aussi, elle comporte une variable membre nommé "titi", donc :
Code:
1 2 3 4 5
| class B
{
public :
int titi;
} |
J'ai une autre classe Tem, qui est une classe template:
Code:
1 2 3 4 5 6
| template <class T>class Tem
{
public:
FaitTrie();
....
} |
Je voudrai que quand je crée un template en remplacant "T" par A, la méthode "FaitTrie" tienne compte de la variable "toto", mais quand je fais le template pour B, la même méthode tienne compte de "titi".
Cela vous semble t 'il possible ? Ou est ce un cas impossible à faire en C++ (en Visual C++) ?
Merci d'avance pour vos avis ou solutions
[Balises CODE rajoutées par Loulou24, meci d'y penser à l'avenir]
Re: Class Template : variable membre de nom inconnu a priori
Salut
Ton pb est classique losque l'on veux utiliser toute la puissance de la STL sur ses propres classes, pour pouvoir faire du tri, il faut definir les opérateur == et <
Code:
1 2 3 4 5 6 7
| class A
{
public :
int toto;
bool operator==(const A& a) { return toto==a.toto; }
bool operator<(const A& a) { return toto<a.toto; }
} |
Code:
1 2 3 4 5 6 7
| class B
{
public :
int titi;
bool operator==(const B& b) { return titi==b.titi; }
bool operator<(const B& b) { return titi<b.titi; }
} |