Dlang Polymorphism doesn't work as expected.

Enjoys Math enjoysmath at gmail.com
Sun Sep 4 17:43:33 UTC 2022


On Sunday, 4 September 2022 at 17:38:54 UTC, Enjoys Math wrote:
> On Sunday, 4 September 2022 at 17:36:24 UTC, Enjoys Math wrote:
>> I have the following MWE:
>>
>> ```
>> import std.exception;
>> import std.stdio;
>>
>> abstract class B
>> {
>>    B opCall() {
>>       throw new Exception("NotImplemented");
>>    }
>> }
>>
>> class A : B
>> {
>>    override B opCall() {
>>       return new A();
>>    }
>> }
>>
>> int main() {
>>    B a = new A();
>>    a();
>>    readln();
>>    return 0;
>> }
>>
>> ```
>>
>> But B.opCall() gets called!   I thought polymorphism was cool 
>> until now....
>>
>> How can I get this to work the way I expected it to?  Would an 
>> abstract method in base do it?
>
> Okay... now the MWE works as I expected polymorphism to work, 
> but my complicated library is not doing it right...
>
> :\

Here is a link to the library on github.  Please help me solve 
this!! :D

https://github.com/enjoysmath/diagram-chaser


More information about the Digitalmars-d mailing list