KD wrote:
Quote:
Is it possible to privately inherit from a class while exposing as one
of the class' base classes?
>
For example, say I have the following classes,
>
class Widget { };
>
class Button : public Widget { };
>
Now I want to create a MyButton class that privately inherits from
Button for its implementation, but only exposes itself as a Widget.
In other words, I don't want the users of MyButton to be tinkering
with the Button part without going through the MyButton interface.
>
The kicker is that the code for Widget and Button may not be modified,
so I cannot make Button virtually inherit Widget and use proper
multiple inheritance.
>
Any takers?
Not sure what you mean by "takers", but I'd probably try to contain
the button instead of privately inheriting from it:
class MyButton : public Widget {
Button actualButton;
public:
....
// here all implementation of the Widget pure interfaces
// should simply be in terms of 'actualButton's members.
};
V
--
Please remove capital 'A's when replying by e-mail
I do not respond to top-posted replies, please don't ask