Re: SGI STL slist Design
On 3/14/2011 2:48 PM, MikeP wrote:
SGI STL's slist derives from a base class which has a private constructor
and destructor, no doubt to enforce that the base class is not useable by
itself.
That sounds odd. If the class cannot be constructed except by itself or
a friend, then 'slist' has to be declared a friend of that class, no?
Otherwise, slist will not be able to construct the subobject of that
base class.
> slist then uses private inheritance from the base class. Would
declaring the constructor and destructor of the base class protected and
deriving slist from the base using public inheritance accomplish the same
thing?
Of course not. Private inheritance prevents the implicit conversion.
Public inheritance provides implicit conversions. Exactly the opposite
if you think about it.
> And why bother giving the other member functions (erase_after) of
the base class other access control when the constructor and destructor
are already private?
Not sure what you're talking about here. Are we supposed to know what
"SGI STL's slist" is? If it's not a standard class/template, perhaps
you could provide some code snippets to illustrate what you mean.
V
--
I do not respond to top-posted replies, please don't ask