nested class inheritance

Gor Gyolchanyan gor.f.gyolchanyan at gmail.com
Sat Jul 14 10:30:36 PDT 2012


On Sat, Jul 14, 2012 at 9:23 PM, Benjamin Thaut <code at benjamin-thaut.de>wrote:

> Am 14.07.2012 19:21, schrieb kenji hara:
>
>> 2012/7/15 Benjamin Thaut <code at benjamin-thaut.de>:
>>
>>  The only problem about this is:
>>>
>>> class Fruit
>>> {
>>>    class Seed {
>>>      void SetFruit(Fruit fruit)
>>>      {
>>>        this.outer = fruit;
>>>
>>
>> Setting to pseudo variable 'outer' should be rejected in compilation.
>> Please report it to bugzilla.
>>
>>       }
>>>    }
>>> }
>>>
>>> class Apple: Fruit
>>> {
>>>    void AppleOnlyMethod(){ ... }
>>>
>>>    class AppleSeed: Fruit.Seed {
>>>      void DoSomething()
>>>      {
>>>        AppleOnlyMethod();
>>>      }
>>>    }
>>>
>>>    auto GetNewSeed() { return new AppleSeed(); }
>>> }
>>>
>>> auto apple = new Apple();
>>> auto seed = apple.GetNewSeed();
>>> seed.SetFruit(new Fruit());
>>> seed.DoSomething(); //what happens here?
>>>
>>> Kind Regards
>>> Benjamin Thaut
>>>
>>>
>> Kenji Hara
>>
>>
> I will not report this, beacuse it will break my custom new operator
> (template) for inner classes ;-)
>
> Kind Regards
> Benjamin Thaut
>
>
That's most unwise, because if it's not supposed to be like that it will
get fixed anyway, so you better start replacing your custom new operator.

-- 
Bye,
Gor Gyolchanyan.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20120714/94896366/attachment.html>


More information about the Digitalmars-d mailing list