Symbian 中的动态数组 CArrayX
2010-08-31 00:12:00 来源:WEB开发网Cpp代码
TKeyArrayFix(TInt anOffset, TKeyCmpText aType)
TKeyArrayFix(TInt anOffset, TKeyCmpText aType)
这两个参数是:
TInt anOffset —类中字段的偏移量
TKeyCmpText aType — 对应字段的类型
对于第一个参数,Symbian中提供了一个_FOFF(c,f)宏来取得类中字段的偏移量,其中,c为类命,f为字段命。如:_FOFF(TStudent,iSName);
对于第二个参数,我们通常是可以有据可循的,请见下表:
Cpp代码
class TStudent
{
public:
TStudent(const TDesC& aSName,TUint aSNo,TReal aScore);
public:
TUint iSNo;
TReal iScore;
TBuf<10> iSName;
};
TStudent::TStudent(const TDesC& aSName,TUint aSNo,TReal aScore)
{
iSNo = aSNo;
iScore = aScore;
iSName = aSName;
}
void ManageStu()
{
//使用CArrayFixFlat,很少进行分配时,用于存储固定大小的T类和R类对象
CArrayFixFlat
//这里也可以改成CArrayFixSeg
StuArrayFlat = new(ELeave)CArrayFixFlat
CleanupStack::PushL(StuArrayFlat);
//分配空间存储两个学生的信息
_LIT(KSTUDENT1,"GuanYabei");
_LIT(KSTUDENT2,"WuMingshi");
_LIT(KRETURN," ");
TBuf<10> StuName1 = KSTUDENT1;
TBuf<10> StuName2 = KSTUDENT2;
//初始化两个学生的信息(姓名,学号,分数)
TStudent stu1(StuName1,1,100.0);
TStudent stu2(StuName2,2,99.5);
//添加到数组中,请注意,用到的是AppendL()方法,它是可能引起异常的
StuArrayFlat->AppendL(stu1);
StuArrayFlat->AppendL(stu2);
// 显示所有的学生信息
更多精彩
赞助商链接