我正在尝试将函数指针传递给类的构造函数。但是,当我尝试编译代码时,出现错误。代码和错误是:
快速查找.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);
};
文件 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;
}
}
在我的主要功能文件中:
int giveIndex (const void *ptr)
{
temp *tptr=(temp*)ptr;
return tptr->getA();
}
int main()
{
QuickFind<temp> *qf=new QuickFind<temp>(10,giveIndex);
}
在这里,我收到'undefined reference to QuickFind<temp>::QuickFind(int, int (*)(void const*))'
错误。我无法弄清楚问题...请帮助。