fork download
  1. import std.stdio;
  2.  
  3. class Test1
  4. {
  5. public:
  6. static
  7. void m1()
  8. {
  9. writeln("static Test1.m1()");
  10. }
  11.  
  12. void m2()
  13. {
  14. writeln("Test1.m2()");
  15. }
  16. }
  17.  
  18. void m3()
  19. {
  20. writeln("m3()");
  21. }
  22.  
  23. void main()
  24. {
  25. auto t = new Test1;
  26. // void delegate() d1 = &(Test1.m1); // error delegateでは、staticなメソッドを指すことができない
  27. // void function() d2 = &(t.m2); // error functionでは、メソッドを指すことができない
  28. // void delegate() d3 = &m3; // error delegateでは、関数ポインタを指すことができない
  29. void function() d1 = &(Test1.m1); // ok
  30. void delegate() d2 = &(t.m2); // ok
  31. void function() d3 = &m3; // ok
  32.  
  33. d1();
  34. d2();
  35. d3();
  36. }
  37.  
Success #stdin #stdout 0.01s 2120KB
stdin
Standard input is empty
stdout
static Test1.m1()
Test1.m2()
m3()