cs_tintin72
Messages postés122Date d'inscriptionmercredi 16 avril 2003StatutMembreDernière intervention22 juillet 2006
-
13 juil. 2006 à 18:29
steve_clamage
Messages postés475Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention11 août 2006
-
13 juil. 2006 à 19:45
Bonjour,
J'ai un pb avec une liste chainée géré par des templates.
Tant que l'information à stocker dans la liste est de type classique (int, float etc....)
ça va. Par contre si le type est une structure il y a quelque pb.
par ex avec la fonction qui retourne la valeur de l'information.
template <typename T>
T CList<T>::returnData()
{
if(sizeList == 0) return 0; //si la liste est vide
return list->data;
}
Lorsque T est une structure, le compilo me dit qu'il ne peut pas renvoyer un int,
qu'il lui faut retourner un argument de type structure.
Est ce qu'il y a un moyen de résoudre ce pb ?
Un cast avec les templates ?
steve_clamage
Messages postés475Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention11 août 20065 13 juil. 2006 à 19:45
Il faudrais pour que ca compile que l'on puisse construire une instance
de ta structure a partir d'un int ou que la conversion a partir d'un
entier soit definie. C'est une mauvaise idée de retourner et zero car
ca limite ton template aux types scalaires de base et surtout il y a un
probleme de conception car si la liste est vide on ne devrait pas
pouvoir "deferencer" la tete et appeler la methode returnData. Regarde
comment est foutu le modele std::list de la bibliotheque standard au
niveau de l'interface.