I am trying to pass a function pointer in to a constructor of a class. However, when I try to compile the code, I am getting an error. The code and error are :
quickfind.h
#ifndef QUICKFIND_H
#define QUICKFIND_H
#endif // QUICKFIND_H
template <class T>
class QuickFind
{
private:
    int size;
    int *array;
    int (*giveIndex)(const void *a);
public:
    QuickFind<T>(int n,int (*ptr)(const void *));
    void connect (const T* u,const T* v);
    bool isConnected(const T* u,const T* v);
};
Constructor definition in file quickfind.cpp
template <class T>
QuickFind<T>::QuickFind(int n,int (*ptr)(const void *))
{
    size=n;
    array=new int[n];
    giveIndex=ptr;
    for(int i=0;i<n;i++)
    {
        array[i]=i;
    }
}
In my main function file :
int giveIndex (const void *ptr)
{
    temp *tptr=(temp*)ptr;
    return tptr->getA();
}
int main()
{
     QuickFind<temp> *qf=new QuickFind<temp>(10,giveIndex);
}
Here, I am getting 'undefined reference to QuickFind<temp>::QuickFind(int, int (*)(void const*))' error. I am not able to figure out the problem...please help.
 
     
     
    