abstract class C
{
int method();
}
class C2:C
{
int method() return 2;
}
class C3:C
{
int method() return 3;
}
int delegate() deleg;
void main()
{
C c;
C2 c2 = new C2;
C3 c3 = new C3;
c=c2;
deleg = &c.method;
writefln(deleg()); // 2
c=c3;
writefln(deleg()); // 2
// I expected this to write 3, why is this not so?