This code:

import std.stdio;
class A {
  void func() { writeln("A"); }
}
class B : A {
  override void func() { writeln("B"); }
}
void main() {
  A a = new A;
  B b = new B;

  auto dg = &a.func;
  dg();

  dg.ptr = cast(void*)b;
  dg();
}

outputs:
A
A

but expected:
A
B

Reply via email to