**fig3_14.txt** /* 1*/ // Duplicate a list. /* 2*/ // Current position becomes first element in both lists. /* 3*/ template /* 4*/ const List & /* 5*/ List:: /* 6*/ operator = ( List & Value ) /* 7*/ { /* 8*/ if( this == &Value ) // Don't copy to yourself!. /* 9*/ return *this; /*10*/ Current_Pos = List_Head = new Node; /*11*/ for( Value.First( ); !Value; ++Value ) /*12*/ { /*13*/ Current_Pos->Next = /*14*/ new Node( Value( ), Current_Pos->Next ); /*15*/ Current_Pos = Current_Pos->Next; /*16*/ } /*17*/ Current_Pos->Next = 0; /*18*/ First( ); /*19*/ Value.First( ); /*20*/ return *this; /*21*/ }