Inheritance of purity

kenji hara k.hara.pg at gmail.com
Fri Feb 17 06:00:49 PST 2012


I think this is a current implementation problem.

In this case, just `override void foo()` in class D should override
the method in C.
And `void foo()const` should be a new overlodad of foo.

Kenji Hara

2012/2/17 Timon Gehr <timon.gehr at gmx.ch>:
> On 02/17/2012 02:33 PM, Timon Gehr wrote:
>>
>>
>> Introducing a new overload against const in a subclass is illegal:
>>
>> class C{
>>     void foo(){}
>> }
>> class D : C{
>>     override void foo(){}
>>     override void foo()const{}
>> }
>>
>> Error: D.foo multiple overrides of same function
>
>
> Oops...
>
> I meant
>
>
> class C{
>    void foo(){}
> }
>
> class D:C{
>    override void foo(){}
>    void foo()const{}
> }
>
> The error message is the same though.


More information about the Digitalmars-d mailing list