Dlang Polymorphism doesn't work as expected.
Enjoys Math
enjoysmath at gmail.com
Sun Sep 4 17:38:54 UTC 2022
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...
:\
More information about the Digitalmars-d
mailing list