Boost logo

Boost Users :

From: Brad Ryder (bradryder67_at_[hidden])
Date: 2007-09-07 17:31:52


Hi Michael,

Thanks for the response. Your solution will indeed work, but the side
effect is that spB and spC only have access to methods available in
the base class. Imagine that B & C have unique methods that I want to
access in main like.

main()
{

A base;
shPtrB spB(new B());
shPtrC spC(new C());

spB.PrintBrad(); // unique to B
spC.PrintMichael(); // unique to C

// this will fail obviously, but how else can I get access to unique
methods in B & C
base.AddChild(spB);
base.AddChild(spC);
}

Thanks for your help

Brad

On 9/7/07, Michael Fawcett <michael.fawcett_at_[hidden]> wrote:
> On 9/7/07, Brad Ryder <bradryder67_at_[hidden]> wrote:
> >
> > main()
> > {
> > A base;
> > shPtrB spB(new B());
> > shPtrC spC(new C());
> >
> > // I dont want to typecast spB or spC
> >
> > A.AddChild( (shPtrA) spB);
> > A.AddChild( (shPtrA) spC);
> > }
>
> Simply stop using shPtrB and shPtrC, and just use shPtrA. e.g.,
>
> main()
> {
> A base;
> shPtrA spB(new B());
> shPtrA spC(new C());
>
> // works fine
> A.AddChild(spB);
> A.AddChild(spC);
> }
>
> HTH,
>
> --Michael Fawcett
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net