[C++-sig] polymorphic class question