J'essaie de renvoyer une nouvelle copie des données dans une classe de modèle C++. Le code suivant obtient cette erreur: invalid conversion from 'int' to 'int*'
. Si je supprime le new T
alors je ne retourne pas une copie des données mais un pointeur vers lui.Comment renvoyer une copie des données en C++
template<class T>
T OrderedList<T>::get(int k)
{
Node<T>* n = list;
for(int i = 0; i < k; i++)
{
n=n->get_link();
}
return new T(n->get_data()); // This line is getting the error **********
}
Ou, selon la définition de 'noeud <> 'et' T', 'retourne T (n-> get_data())'. (Bien que je suis d'accord qu'il est peu probable donné ce code.) – sbi
@sbi: puisque la fonction renvoie un 'T', je ne peux pas imaginer quel genre de 'Node <>' et 'T' compiler et ne parviennent pas à copier le 'T' ' –