关于定义一个模板形式的函数指针类型的相关问题
关于定义一个模板形式的函数指针类型的相关问题
想写一个自己的通用排序函数,由于使用模板,
所以想把排序用的比较函数的函数指针也写成模板形式,
这里有点搞不懂了,怎么定义一个模板形式的函数指针类型?如(*)
这样以便比较时传入这个对应类型的比较函数指针。
下面这个程序就想用这个想法,但是(*)处编译不过,始终报错"模板不合法"。
请教各位朋友。
template<typename T>
typedef int (*fcmptype)(const T& t1,const T& t2);//(*)
template<typename T>
int mysort(T[] tarr,fcmptype f)
{
//.. 使用f来比较T[]内部元素大小
return 0;
}
int main(int argc, char* argv[])
{
//int[] t=new int[100];
//...
//mysort(...)
getchar();
return 0;
}
想写一个自己的通用排序函数,由于使用模板,
所以想把排序用的比较函数的函数指针也写成模板形式,
这里有点搞不懂了,怎么定义一个模板形式的函数指针类型?如(*)
这样以便比较时传入这个对应类型的比较函数指针。
下面这个程序就想用这个想法,但是(*)处编译不过,始终报错"模板不合法"。
请教各位朋友。
template<typename T>
typedef int (*fcmptype)(const T& t1,const T& t2);//(*)
template<typename T>
int mysort(T[] tarr,fcmptype f)
{
//.. 使用f来比较T[]内部元素大小
return 0;
}
int main(int argc, char* argv[])
{
//int[] t=new int[100];
//...
//mysort(...)
getchar();
return 0;
}
...全文
相关推荐
贴子中的函数指针无法编译的例子的附件
在本案例中,"贴子中的函数指针无法编译的例子"揭示了一个常见的编程问题,即在使用函数指针时遇到了编译错误。这个问题可能涉及到多种因素,包括类型不匹配、未定义的函数引用、不正确的函数指针声明或使用等。
C++相关高频经典面试题100问.pdf
模板与泛型编程- **模板**:用于编写通用代码。- **泛型编程**:基于类型的操作,提高代码复用性。#### 12. 函数模板与类模板- **函数模板**:定义一组相关函数。
Higher-order functions for c++.zip
例如,我们可以创建一个自定义的比较函数对象,用于排序操作。3. **函数指针**: 在C++中,函数可以被当作普通变量处理,即可以存储函数地址。
C语言 函数指针(指向函数的指针)详解
**使用示例** 在提供的示例中,定义了一个返回两个整数较大值的函数`max`,然后在`main`函数中定义了一个函数指针`pmax`,类型与`max`函数匹配。
qt面试相关
函数指针函数指针是一种指向函数的指针变量,它可以用来调用函数。函数指针的定义形式为:函数返回值类型 (*函数指针名)(函数形参列表)。


