fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class Sprite {
  5. };
  6.  
  7. class A {
  8. public:
  9. void drawSprite(Sprite) {
  10. cout << "A::drawSprite() called" << endl;
  11. }
  12. };
  13.  
  14. class Scene {
  15. Sprite s;
  16. A a;
  17. public:
  18. void boucle(void (A::* f)(Sprite)) {
  19. (a.*f)(s);
  20. }
  21. };
  22.  
  23. class B {
  24. Scene defaultScene;
  25. public:
  26. void drawMyThings() {
  27. typedef void (A::* f)(Sprite);
  28. f draw = &A::drawSprite;
  29. defaultScene.boucle(draw);
  30. }
  31. };
  32.  
  33. int main() {
  34. B b;
  35. b.drawMyThings();
  36.  
  37. return 0;
  38. }
Success #stdin #stdout 0s 3456KB
stdin
Standard input is empty
stdout
A::drawSprite() called