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
