|
Boost : |
Subject: Re: [boost] [intrusive] rtti_base class proposition
From: Ireneusz Szpilewski (irek_at_[hidden])
Date: 2009-10-22 00:08:00
Eugene Wee wrote:
> Hi,
>
> On Thu, Oct 22, 2009 at 5:26 AM, Ireneusz Szpilewski
> <irek_at_[hidden]> wrote:
>
>>>> And how exactly are you supposed to make that change at runtime?
>>>>
>>>>
>> What do you suggest?
>>
>> heart as a member of Me?
>>
>> Before:
>>
>> class Me
>> {
>> MyHeart heart;
>> };
>>
>> After:
>>
>> class Me
>> {
>> SomebodyElsesHeart heart;
>> }
>>
>> It can't be done at runtime either.
>>
>
> If MyHeart and SomebodyElsesHeart publicly inherited from say, a Heart
> (abstract) base class, and if Me's heart member variable was a (smart)
> pointer to Heart, then you could indeed change the actual (sub)type of
> the Heart object that a Me object owns at runtime. This is a common
> technique, methinks.
>
> Regards,
> Eugene
> _______________________________________________
> Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
So, what do you suggest?
Heart* as a member of Me?
Let's try:
struct Me
{
Me()
{
heart = new(MyHeart);
}
~Me()
{
delete heart;
}
private:
Heart* heart;
};
What if MyHeart has SingMySong() method while Heart does not?
How can I access it?
Ireneusz Szpilewski
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk