considerare la seguente classe modello.Modello C++ - Tipi multipli
template <class T>
class MyClass
{
void MyFunc();
}
template <class T>
void MyClass<T>::MyFunc()
{
//...implementation goes here
}
ho bisogno di aggiungere un'altra funzione MyFunc2 che accetta un ulteriore Template arg T2 cioè
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
}
Sto usando il compilatore VS 2008. Ricevo l'errore
error C2244: unable to match function definition to an existing declaration
Come deve apparire la definizione e la dichiarazione delle funzioni in questo caso.
Molto spesso, è più facile definire le funzioni membro del modello inline nella definizione del modello di classe per evitare tutti questi piccoli problemi. –