Question on templates? - Programmers Heaven

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

Question on templates?

evader23evader23 Posts: 4Member
Ok I have the following code

template class TLinkList
{
protected:
TItem FHead;
TItem *FItem;
unsigned short FCount;
unsigned short FPos;
public:
void Intialize(void);
void Add(T Data)
{
if(FCount == 0)
{
FItem->Cur = Data;
FItem->Next = new TItem;
FHead.Next = FItem;
}
else
{
FItem = FHead.Next;
while(FItem->Next != NULL)
Next();
FItem->Cur = Data;
FItem->Next = new TItem;
}
FCount += 1;
}

void Next()
{
FItem = FItem->Next;
FPos += 1;

}
inline unsigned short Count(){return FCount;}
};

template void TLinkList::Intialize()
{
FHead.Next = new TItem;
FItem = new TItem;
FCount = 0;
FPos = 0;
}

When all in the same file it compiles fine, But I want to be able to move the body of the functions to the .cpp file so the .h file isn't so cluttered(not mention is bad form. problem is when I do that I get a liker error. How do I get it to compile with the class defintions in the header file and the Body of the fuctions in the .cpp file?

Comments

  • smnssmns Posts: 11Member
    is it possible at all with templates? i dont think so. after all, the compiler has to see the body to generate code, same as inline functions. all u can do is to move the code out the class definition, i.e. u can write:
    template A::f() {...} etc or
Sign In or Register to comment.