Template et instanciation

Signaler
Messages postés
252
Date d'inscription
mercredi 25 octobre 2000
Statut
Membre
Dernière intervention
1 mai 2005
-
Messages postés
252
Date d'inscription
mercredi 25 octobre 2000
Statut
Membre
Dernière intervention
1 mai 2005
-
salut salut,

j'ai cree une template class (template <class T> class CIM)avec comme attribut un tableau dont le type est instancie a la creation de l'objet : CIM<char> im1(100,100) par exemple. maintenant, je souhaite faire un methode Copier : void Copier(CIM im) qui recopie les valeurs d'un objet dans un autre. seulement, probleme, qd il y des types differents pour les objets, pas de compilation pour cause de pb de conversion :

CIM<char> im1(100,100);
CIM im2(100,100);
im1.Copier(im2);

j'ai fait le constructeur de copie ... ma question est en fait de savoir comment faire une conversion de type quand on ne le connait pas (pas grave pour l'instant si il y a des pertes dans les conversions ...)

PS : est ce que je dois declarer ma methode comme ca : void Copier(CIM<T> im) ou comme ci dessus?

6 réponses

Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006

Qu'est ce que tu veux en faire ?

Si j'étais toi, j'abandonnerai l'idée, ca n'a aucun sens ce que tu veux faire et c'est dangeureux puisque les données stockées dans ton tableau ont de grandes chances d'être invalides. Invalides et inutilisables.

Kaid - kaid.fr.st
Messages postés
252
Date d'inscription
mercredi 25 octobre 2000
Statut
Membre
Dernière intervention
1 mai 2005

Admettons, tu as raison ... par contre, comment est il possible d'empecher (test?) la copie d'un tableau d'un type dans un autre type (a part l'erreur du compilateur)?
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006

C'est le compilateur qui fait cette vérification donc pas la peine de faire le test à l'exécution. S'il y a un problème, ca ne compilera pas, c'est tout.

Kaid - kaid.fr.st
Messages postés
252
Date d'inscription
mercredi 25 octobre 2000
Statut
Membre
Dernière intervention
1 mai 2005

d'accord, c'est effectivement lpus simple comme ca ... tu vas me trouver lourd, mais existe t il un equivalent de sizeof() pour connaitre le type d'une variable?
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006

Oui c'est possible, c'était l'objet d'une discussion il y a peu sur le forum:
kaid.fr.st
Messages postés
252
Date d'inscription
mercredi 25 octobre 2000
Statut
Membre
Dernière intervention
1 mai 2005

tres bon lien, merci