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

关于RArray排序有关问题

2012-02-21 
关于RArray排序问题我查了一些资料,想对RArray数组做一个排序。具体如下:自己定义了一个T类:class TNoteDat

关于RArray排序问题
我查了一些资料,想对RArray数组做一个排序。具体如下:
自己定义了一个T类:
class TNoteData
{

public: // constructor

TNoteData() {};//: iStrength(50){};

public: // members

TBool IsValid() const;
TBuf<200> iContent;
TBuf<20> iTime;
public: // accessors

void SetContent(const TDesC& aContent);
const TDes& Content() const;

void SetTime(TDesC& aTime);
const TDes& Time() const;
void SetTimeNow();
private: //Data

};
在Container.h文件中声明了:
RArray<TNoteData> iNoteList;
在Container.cpp文件中增加了函数:
TInt CompareTime(const TNoteData& note1,const TNoteData& note2)
{
if(note1.iTime>note2.iTime)
return 1;
else if(note1.iTime==note2.iTime)
return 0;
else
return -1;
}
在Container.cpp文件需要调用的函数中增加了:
TLinearOrder<TNoteData> order1(CompareTime);
iNoteList.Sort(order1);


但在编译时提示错误:
C:\WORK\NOTE\SRC\Notecontainer.cpp(237) : error C2664: '__thiscall TLinearOrder<class TNoteData>::TLinearOrder<class TNoteData>(int (__cdecl *)(const class TNoteData &,const class TNoteData &))' : cannot convert parameter 1 from 'int (const class 
TNoteData &,const class TNoteData &)' to 'int (__cdecl *)(const class TNoteData &,const class TNoteData &)'
  None of the functions with this name in scope match the target type
Error executing cl.exe.
我看了几个例子都是这么写的,为什么我的不行?请教这是什么原因造成的?

[解决办法]
CompareTime是static函数吗?尝试改成static函数。

热点排行