[interfacekit] Re: BRoster & BWindow
- From: "Ingo Weinhold" <bonefish@xxxxxxxxxxxxxxx>
- To: interfacekit@xxxxxxxxxxxxx
- Date: Sat, 19 Apr 2003 12:54:25 +0200 CEST
"Erik Jaesler" <erik@xxxxxxxxxxxxxx> wrote:
>
> >> A last note: rather than declare them as members of the classes
> > > they
>
> >> provide access to, I'd like to put them in the BPrivate namespace
> > > --
> >> like BLooperList. The idea being that if you declare them as
> > > class
> >> members, then they have to be in the public interface, and end-
> > > users
> >> may
> >> be tempted to use them.
> >
> >That should turn out to be difficult, since the class is opaque in
> > any
> >case. :-P
>
> How so=3F If it's declared within the main class, the interface will
> be
> right there. Unless we give the private accessor class methods some
> very obnoxious names, it should be pretty obvious what they do.
Nah, only the class name would appear in the header, not the class
interface. Cf. Roster.h:
class BRoster {
public:
[...]
/*----- Private or reserved ------------------------------*/
class Private;
private:
friend class Private;
[...]
}
> >An API user with a sufficent amount of criminal energy can abuse the
> >private class anyway, regardless of whether it lives in the BPrivate
> >namespace or in the class itself.
>
> True enough. A user willing to go to that length will also make his/
> her
> own copy of the header, declare themselves a friend and have all the
> fun
> they want. The point is more to keep this stuff out of the way --
> why
> clutter up the public API headers any more than absolutely necessary=3F
Exactly my opinion. :-)
> >> Better to hide them away in BPrivate.
> >
> >What I find a bit ugly with that solution is that you have to
> > declare
> >the class in the namespace in the public header (even before the
> >definition of the main class).
>
> Yeah, it's a tiny bit ugly, but nothing truly onerous. I suspect
> most
> people will hardly notice the four lines of code (total) involved.
Even less ugly are just two additional lines in the `private or
reservered' region. :-P
CU, Ingo
- References:
- [interfacekit] Re: BRoster & BWindow
- From: Erik Jaesler
Other related posts:
- » [interfacekit] Re: BRoster & BWindow
- » [interfacekit] Re: BRoster & BWindow
- » [interfacekit] Re: BRoster & BWindow
- » [interfacekit] Re: BRoster & BWindow
- » [interfacekit] Re: BRoster & BWindow
- » [interfacekit] Re: BRoster & BWindow
- » [interfacekit] Re: BRoster & BWindow
- » [interfacekit] Re: BRoster & BWindow
- » [interfacekit] Re: BRoster & BWindow
- » [interfacekit] Re: BRoster & BWindow
- » [interfacekit] Re: BRoster & BWindow
- » [interfacekit] Re: BRoster & BWindow
- » [interfacekit] Re: BRoster & BWindow
- » [interfacekit] Re: BRoster & BWindow
- » [interfacekit] Re: BRoster & BWindow
- » [interfacekit] Re: BRoster & BWindow
- » [interfacekit] Re: BRoster & BWindow
- » [interfacekit] Re: BRoster & BWindow
- » [interfacekit] Re: BRoster & BWindow
- [interfacekit] Re: BRoster & BWindow
- From: Erik Jaesler