To form a singly linked list of CMyClass
objects,
include the link object TSglQueLink
as a component of
CMyClass
:
class CMyClass : public CBase
{
...
TSglQueLink iSlink;
...
};
Although any kind of object can be an element of a linked list, most lists consist of elements which are all of the same type.
An object can participate in more than one list. For example, to
allow CMyClass
objects to participate in two singly linked lists,
include two separate TSglQueLink
objects as components of
CMyClass
:
class CMyClass : public CBase
{
...
TSglQueLink iSlink1;
...
TSglQueLink iSlink2;
};
Elements can also be objects constructed from a variety of classes,
all ultimately derived from the same base class, where that base class includes
the link object as a component. For example, if CBc
is a base
class for CD1
which, in turn, is a base class for
CD2
, then the elements of the list can consist of a mix of
CBc
or CDc1
or CDc2
objects.
class CBc : public CBase
{
...
TSglQueLink iSlink;
...
};
class CDc1 : public CBclass
{
...
}
class CDc2 : public CDc1
{
...
}
New link elements can be inserted at the beginning or the end of the
list, but not into the middle of the list. The functionality for this is
provided by the header TSglQue<class T>
.