首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

请问qsort中的函数指针有关问题

2012-04-04 
请教qsort中的函数指针问题程序中想要对一个面积序列进行排序,调用的是qsort函数,但代码编译老出错,不知怎

请教qsort中的函数指针问题
程序中想要对一个面积序列进行排序,调用的是qsort函数,
但代码编译老出错,不知怎么解决?   主要代码如下:


int   TForm1::Compare(const   void   *p1,const   void   *p2)
{   //此处省略了比较代码
    return   0;
}

int   TForm1::AreaSort()
{   qsort(Areas,Count,sizeof(double),Compare);
    return   0;
}

   
错误提示:
Cannot   convert   'int   (*   (_closure   )(const   void   *,const   void   *))(const   void   *,const   void   *) '   to   'int   (*)(const   void   *,const   void   *) '

说明:   如果Comapre不是TForm1的成员函数,而是个单独的函数,则没有问题,
现在的问题是我希望它是成员函数,怎么样才能让qsort正常工作?


[解决办法]
使用静态成员函数试试
[解决办法]
Compare 不能是TForm1的成员函数,将Compare前面的 TForm1:: 去掉就可以了。
[解决办法]
這是兩種不同類型的指針,不能轉換。
如果函數中要用到 Form1 中的數據,你得另想辦法。

热点排行