This document describes how to implement TKey derived classes.
The constructors are used to set the following information:
the key offset
the type of comparison to be made between keys
the length of the key (for text type keys only).
For example:
TKeyDerived::TKeyDerived(TInt anOffset,TKeyCmpText aType)
: TKey(anOffset,aType)
{}
TKeyDerived::TKeyDerived(TInt anOffset,TKeyCmpText aType,TInt aLength)
: TKey(anOffset,aType,aLength)
{}
TKeyDerived::TKeyDerived(TInt anOffset,TKeyCmpNumeric aType)
: TKey(anOffset,aType)
{}
A typical implementation of the virtual function At() , which gets a pointer to the key of an element corresponding to a given index, might be structured:
TAny* TKeyDerived::At(TInt anIndex) const
{
if (anIndex==KIndexPtr)
{
return((TUint8 *)iPtr+iKeyOffset);
}
//
// code to return a pointer to the key in the appropriate element
//
}
The derived class will need to have a pointer to the array it represents. At the very least, the derived class will need a data member for this pointer and, possibly, a member function to set it. This is needed in order to implement the At() function.
TKey and derived classes use untyped pointers, i.e. pointers of type TAny* . It may be desirable to provide type safety by further deriving a templated class.
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.