"Alf P. Steinbach" <alfps@start.no> wrote in message
* Leigh Johnston:
* Alf P. Steinbach:
* Leigh Johnston:
The only time it is unwise to use public inheritance is if your
class invariant consists of more than just vector's invariant in
which case it might be possible to break your class's invariant by
calling the vector's member functions, but I don't believe this is
the case in your example (i.e. you are simply performing interface
augmentation).
Sorry, that's bullshit. Proper design involves much more. It's
possible to disagree over what constitutes a good design and whether
something constitutes good design, but in this case it's about the
opposite, a technique that's almost universally recognized as
Bad(TM), so, no discussion.
[don't quote signatures, please, and please /trim/ your quoting]
Sorry but that's bullshit. Interface augmentation is a perfectly
valid design practice.
The OP isn't doing interface augmentation by deriving from
std::vector<Point>.
And that's not what you were talking about, your statement about "the
only time it is unwise to use public inheritance", quoted above.
I.e. you're now attacking a strawman argument or a couple of strawman
arguments.
Instead of inventive strawman argumentation you might reasonably and
straigtforwardly ask why, according to me, your earlier statement is
commonly regarded as bullshit.
As opposed to strawman argumentation, which usually leads to negative
outcomes, such questioning might prove the label-affixer (i.e. here
me) wrong, or you could learn something, or whatever, but mostly
positive outcomes from asking.
Cheers & hth.,
- Alf
You are simply full of shit. Hope this helps.