public override Object Clone()
{
// Since we are a derived class use the base's Clone()
// to perform the shallow copy. Since it is shallow it
// will include our derived class. Since we are derived,
// this method is an override.
Queue o = (Queue) base.Clone();
// Now do the deep work required
// If any new variables are added then this routine will
// likely need updating
return o;
}