$B%3%s%9%H%i%/%?$G$O(B reset() $B$r8F$P$J$$$N$G!"@8@.!u=i4|2=%k!<%A%s$O(B
   top = new topclass;
   top->reset();
$B$H$J$k!#(B

$B>e0L%/%i%9$N(B reset() $B$O2<0L%/%i%9$N(B reset() $B$r8F$S=P$9!#(B
($B>e0L%/%i%9$H$O2<0L%/%i%9$r%/%i%9%a%s%P$H$7$F;}$D%/%i%9(B)
$B$=$N$?$a!"(B
   struct lower {
     void reset();
   };
   struct higher {
     lower *data;
     void reset();
   }
$B$N;~!"(Bhigher::reset() $B$ONc$($P!"<!$N$h$&$K$J$k!#(B
   void higher::reset() {
       .....
       data->reset();
   }
