Recall our definition of the
Shape class. One remark we made when defining its two virtual properties was the fact we had to provide default implementations that didn’t really have much meaning:
Although 0.0 might seem like a good default value, wouldn’t it be much better not to have to specify a value at all? Moreover, does it even mean to create an instance of the
Shape object? Isn’t a shape something very abstract that needs to be concretized to help someone draw a mental picture? Although
Circle are very concrete, the concept of a
Shape definitely isn’t. The following use of
Shape looks weird for that very reason: ...