considérez la classe de modèle suivante.Modèle C++ - Plusieurs types
template <class T>
class MyClass
{
void MyFunc();
}
template <class T>
void MyClass<T>::MyFunc()
{
//...implementation goes here
}
je dois ajouter une autre fonction ma_fonction2 qui accepte un supplémentaire modèle arg T2 i.e.
template <class T>
class MyClass
{
void MyFunc();
template <class T2>
static void MyFunc2(T2* data);
}
template <class T>
void MyClass<T>::MyFunc()
{
//...implementation goes here
}
template <class T, class T2>
void MyClass<T>::MyFunc2(T2* pData)
{
//...implementation goes here
}
J'utilise le compilateur VS 2008. J'obtiens l'erreur
error C2244: unable to match function definition to an existing declaration
Comment devrait ressembler la définition et la déclaration des fonctions dans ce cas.
Plus souvent qu'autrement, il est plus facile de définir les fonctions de membre de modèle inline dans la définition de modèle de classe pour éviter tous ces petits problèmes –