This code doesn't work (and probably doesn't compile) anyhow, but at least try to do the right thing in it and override DoExpand() instead of adding a virtual Expand() hiding the non-virtual version in the base class.
This code doesn't work (and probably doesn't compile) anyhow, but at least try to do the right thing in it and override DoExpand() instead of adding a virtual Expand() hiding the non-virtual version in the base class.