qq_33298527 2016-05-04 16:00 采纳率: 0%
浏览 1608

新人求教,C++用模板写qsort所需的排序函数以实现对所有类型的排序

我写了个模板类,为了使cmp能对任意类型的数据来排序,但是却报错:错误 1 error C3867: “A::cmp”: 函数调用缺少参数列表;请使用“&A::cmp”创建指向成员的指针
求教这是为什么 该怎么改?

这是我的代码;

#include
#include
using namespace std;
template
class A{
public:
void up(T aa, int size){
qsort(aa, size, sizeof(*aa), cmp);
for (int i = 0; i < size; i++) cout << aa[i] << endl;
}
int cmp(const void *a, const void *b){
if (
(T*)a > (T)b) return 1;
else return -1;
}
};
int main(){
A a;
int i[5] = { -1, 0, 6, 3, 0 };
a.up(i, 5);
system("pause");
}

  • 写回答

4条回答

  • threenewbee 2016-05-04 16:05
    关注

    int cmp(const void *a, const void *b)
    这个不能是成员函数,放在类外面

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题