我有一个通用函数,用于对 List 类中的一些对象进行排序。
该函数运行良好,但是当我想使用指向该类中成员函数的函数指针将该函数应用于该类时,它不会构建。
功能是:
template <typename T1, typename T2, typename T3>
void DialogFaitListing::trie(T1 * list, T2 (T1::*fx)(quint16), T3 (T2::*crit)())
{
for(int i(0);i<list->count();i++)
{
for(int j(i);j<list->count();j++)
{
if((((list->*fx)(i)).*crit)() > (((list->*fx)(j)).*crit)())
{
list->swap(i,j);
}
}
}
}
其中 list 是包含对象列表的类,fx 是访问对象的函数指针,而 crit 是用于排序的对象比较函数。
当我使用这条线构建时:
trie(vend,&Vendeurs::getVend,&Vendeur::getNom);
我收到此错误:
dialogfaitlisting.cpp:459: erreur : no matching function for call to
'DialogFaitListing::trie(Vendeurs*&, Vendeur (Vendeurs::*)(quint16),
QString (Personne::*)())'
ps:对不起我的英语不好