and Shape is the base-class for various shapes like "Circle" or "Square" and so on. how should operator== look like for this class? how can I compare 2 Shape objects by the derived classes contents, when I do not know the exact type? I could add
virtual bool Shape::Equal(Shape&);
to each Shape-class, but how do I make sure that the compared objects are of the same type? I could compare whatever member-function pointer, but what's the non-awkward solution for discerning Shape object-types?